我有一个类型,一个字符串和一个对象。
有什么方法可以调用parse方法或在字符串上动态转换为该类型?
基本上我该如何删除逻辑中的if语句
object value = new object();
String myString = "something";
Type propType = p.PropertyType;
if(propType == Type.GetType("DateTime"))
{
value = DateTime.Parse(myString);
}
if (propType == Type.GetType("int"))
{
value = int.Parse(myString);
}
并像这样做更多的事情。
object value = new object();
String myString = "something";
Type propType = p.PropertyType;
//this doesn't actually work
value = propType .Parse(myString);
最佳答案
TypeDescriptor
进行救援!:
var converter = TypeDescriptor.GetConverter(propType);
var result = converter.ConvertFrom(myString);
所有原始类型(加上
Nullable<TPrimitive>
和许多其他内置类型)已经集成到TypeConverter基础结构中,因此“开箱即用”受支持。要将自定义类型集成到
TypeConverter
基础结构中,请实现自己的 TypeConverter
并使用 TypeConverterAttribute
用新的TypeConverter
装饰要转换的类关于c# - C#:从System.Type动态解析,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2380467/