按类型C#设置对象

时间:2015-07-12 15:23:29

标签: c# .net

我需要做的就是这样,但实际上无法理解。

 Object value = new typeof(i.FieldType.GetType());

值的类型可以是任何类型,它只是必须继承一个类(例如,BaseClass)。该类型将从(.Net)System.Reflections中读取。但我不知道如何创建一个新的对象。

如何创建一个存储为Object的对象的new()对象(构造函数),其类型如果已知为System.Reflections?

3 个答案:

答案 0 :(得分:1)

您可以使用ConstructorInfo类

 var constructorInfo = typeof(myclasstype).GetConstructor();
 if (constructorInfo != null)
 {
     var myclass = constructorInfo.Invoke();
 }

答案 1 :(得分:1)

你真的需要构建类型吗?如果你想动态地将一个字符串转换为一个类型(根据你的一个评论),那么你需要的只是System.Convert.ChangeType方法。

object convertedValue = Convert.ChangeType(stringValue, i.FieldType.GetType());

ChangeType的第二个参数是System.Type

如果要动态创建新(空)对象,则实际上只需要Activator。如果您要讨论的字段类型是标准类型,例如stringintbool,则Convert.ChangeType会执行此操作。

答案 2 :(得分:0)