使用反射创建由"Type"对象的内容表示的对象



我正在使用反射通过这样的字符串来查找类型。。。

Type currentType = Type.GetType(typeName);

然后我就可以得到这样一个类型的属性列表。。。

var props = currentType.GetProperties();

如何实例化这种类型的新对象,然后根据道具列表中的属性列表开始为该对象的属性赋值?

使用您已经拥有的值。。。

var created = Activator.CreateInstance(currentType);
foreach(var prop in props)
{
    prop.SetValue(created, YOUR_PROPERTY_VALUE, null);
}

用实例化currentType

var newInst = Activator.CreateInstance(currentType);

并使用分配属性值

propInfo.SetValue(newInst, propValue, BindingFlags.SetProperty, null, null, null);

其中,propInfoprops中的PropertyInfo实例,propValue是要分配给特性的对象。

编辑:

我总是倾向于使用更详细的SetValue重载,因为我过去曾遇到过短重载的问题,但propInfo.SetValue(newInst, propValue, null);可能也能工作。

相关内容

  • 没有找到相关文章

最新更新