我使用反射来查找类似字符串的类型...
Type currentType = Type.GetType(typeName);
然后,我能够获得该类型的属性列表,如...
var props = currentType.GetProperties();
如何实例化此类型的新对象,然后根据道具列表中的属性列表开始为该对象的属性赋值?
答案 0 :(得分:4)
使用您已拥有的值...
var created = Activator.CreateInstance(currentType);
foreach(var prop in props)
{
prop.SetValue(created, YOUR_PROPERTY_VALUE, null);
}
答案 1 :(得分:1)
使用:
实例化currentType
var newInst = Activator.CreateInstance(currentType);
并使用以下内容指定属性值:
propInfo.SetValue(newInst, propValue, BindingFlags.SetProperty, null, null, null);
propInfo
PropertyInfo
的{{1}}实例props
,propValue
是您要分配给该媒体资源的对象。
编辑:
我总是倾向于使用更冗长的SetValue
重载,因为我过去曾遇到短问题,但propInfo.SetValue(newInst, propValue, null);
也可能有效。