繁体   English   中英

通过C#类型设置对象

[英]Setting Object by type C#

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

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

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

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

您可以使用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器。 如果您要讨论的字段类型是标准类型,例如stringintbool ,那么Convert.ChangeType会做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM