按c#类型设置对象

本文关键字:对象 设置 类型 | 更新日期: 2023-09-27 18:02:22

我需要做的是这样的事情,但我真的不明白怎么做。

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

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

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

按c#类型设置对象

可以使用ConstructorInfo类

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

你真的需要构造这个类型吗?如果你想动态地将字符串转换为类型(根据你的注释之一),那么你所需要的就是System.Convert.ChangeType方法。

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

其中ChangeType的第二个参数是一个System.Type


Activator实际上只需要,如果你想动态地创建新的(空的)对象。如果您谈论的字段类型是标准类型,如string, intbool,那么Convert.ChangeType就可以了。

您正在搜索Activator.CreateInstance(Type type)