Kue*_*per 8 .net c# reflection
但我的问题是我的数据只存在于字符串中.因此,当然我总是得到一个例外,因为它不是正确的类型.
有没有办法自动尝试将字符串解析为相应的类型(DateTime,int,decimal,float)?
以下是我正在使用的代码:
Type myType = obj.GetType();
PropertyInfo[] props = myType.GetProperties();
foreach (PropertyInfo prop in props)
{
setProperty(obj, prop, data[prop.Name]);
}
Run Code Online (Sandbox Code Playgroud)
data是一个简单的关联数组,包含数据为字符串.这些数据应该被映射到obj.
Mar*_*ade 15
你可以使用这个Convert类:
var value = Convert.ChangeType(data[prop.Name], prop.PropertyType);
setProperty(obj, prop, value);
Run Code Online (Sandbox Code Playgroud)
你应该能够使用TypeConverter:
var converter = TypeDescriptor.GetConverter(prop.PropertyType);
var value = converter.ConvertFromString(data[prop.Name]);
setProperty(obj,prop,value);
Run Code Online (Sandbox Code Playgroud)