Открытие файла непосредственно в браузере не будет работать, так как браузер не может выполнить код PHP, вы обходите стек LAMP таким образом.
Вместо этого вы захотите получить доступ к стеку LAMP, выбрав http: // localhost
Я не уверен, понял ли я Ваши намерения правильно, но давайте посмотрим, помогает ли этот.
public class TypedProperty<T> : Property where T : IConvertible
{
public T TypedValue
{
get { return (T)Convert.ChangeType(base.Value, typeof(T)); }
set { base.Value = value.ToString();}
}
}
Для многих типов (целое число, дважды, DateTime и т.д.), существует статический метод Синтаксического анализа. Можно вызвать его с помощью отражения:
MethodInfo m = typeof(T).GetMethod("Parse", new Type[] { typeof(string) } );
if (m != null)
{
return m.Invoke(null, new object[] { base.Value });
}
Вы могли возможно использовать конструкцию такой в качестве класс черт. Таким образом у Вас был бы параметризованный класс помощника, который знает, как преобразовать строку в значение ее собственного типа. Тогда Ваш метод get мог бы быть похожим на это:
get { return StringConverter<DataType>.FromString(base.Value); }
Теперь, я должен указать, что мой опыт с параметризованными типами ограничен C++ и его шаблонами, но я предполагаю, что существует некоторый способ сделать тот же вид вещи с помощью дженериков C#.
метод Любоса хаско не работает для значений NULL. Приведенный ниже метод будет работать для значений NULL. Однако я не придумал этого. Я нашел его через Google: http://web.archive.org/web/20101214042641/http://dogaoztuzun.com/post/C-Generic-Type-Conversion. aspx Кредит "Тунец Токсоз"
Использование первое:
TConverter.ChangeType<T>(StringValue);
Класс ниже.
public static class TConverter
{
public static T ChangeType<T>(object value)
{
return (T)ChangeType(typeof(T), value);
}
public static object ChangeType(Type t, object value)
{
TypeConverter tc = TypeDescriptor.GetConverter(t);
return tc.ConvertFrom(value);
}
public static void RegisterTypeConverter<T, TC>() where TC : TypeConverter
{
TypeDescriptor.AddAttributes(typeof(T), new TypeConverterAttribute(typeof(TC)));
}
}