是否可以从表示其类型的字符串值创建对象实例?我正在尝试基于XML文档中的字符串在LINQ-to-XML查询中动态创建某种类型的对象。我习惯于能够在PHP和JavaScript中动态创建任何类型的对象,只需能够编写如下内容:$obj=new$typeName();理想情况下,我希望能够执行如下操作:List=(fromsomeObjsinXMLfileselectnewsomeObj(){Name=(string)someObjs.Element("name"),NestedObj=newsomeObjs.Element("nestedObj").Element("type")(){NestedName=(string)someObjs.Element("nestedObj").Element("name")}}).ToList();如果不获取当前正在执行的程序集,我无法弄清楚如何执行此操作。您可以使用:Activator.CreateInstance(Type.GetType(typeName))当然,这仅适用于具有无参数构造函数的类型。更新(初始化对象):您可以使用C#4动态类型功能来设置新创建对象的属性:dynamicnewObj=Activator.CreateInstance(Type.GetType(typeName));newObj.NestedName=str;在LINQtoXML查询中,您可能必须使用带有显式正文的lambda语法:("type")));nestedObj.NestedName=(string)someObjs.Element("nestedObj").Element("name");返回新的someObj{Name=(string)someObjs.Element("name"),NestedObj=nestedObj};}).ToList();使用activator类的createinstance方法以上是C#学习教程:是否可以根据表示其类型的字符串值来创建对象实例?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
