将字符串转换为C#中的类型如果我收到一个包含类名称的字符串,并且我想将此字符串转换为实际类型(字符串中的那个),我该怎么做?我试过了Type.GetType("System.Int32")例如,它似乎工作。但是当我尝试使用自己的对象时,它总是返回null ...我不知道提前在字符串中会有什么,所以它是我将其转换为真实类型的唯一来源。Type.GetType("NameSpace.MyClasse");任何的想法?
3 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
尝试:
Type type = Type.GetType(inputString); //target typeobject o = Activator.CreateInstance(type); // an instance of target typeYourType your = (YourType)o;
Jon Skeet通常是正确的:)
更新:您可以以各种方式指定包含目标类型的程序集,如Jon所述,或:
YourType your = (YourType)Activator.CreateInstance("AssemblyName", "NameSpace.MyClass");
慕婉清6462132
TA贡献1804条经验 获得超2个赞
如果您确实想要按名称获取类型,可以使用以下内容:
System.AppDomain.CurrentDomain.GetAssemblies().SelectMany(x => x.GetTypes()).First(x => x.Name == "theassembly");
请注意,您可以提供有关您尝试加载的类型的更多信息,从而大大提高性能。
- 3 回答
- 0 关注
- 1668 浏览
添加回答
举报
0/150
提交
取消