将字符串转换为C#中的类型

将字符串转换为C#中的类型

如果我收到一个包含类名称的字符串,并且我想将此字符串转换为实际类型(字符串中的那个),我该怎么做?

我试过了

Type.GetType("System.Int32")

例如,它似乎工作。

但是当我尝试使用自己的对象时,它总是返回null ...

我不知道提前在字符串中会有什么,所以它是我将其转换为真实类型的唯一来源。

Type.GetType("NameSpace.MyClasse");

任何的想法?


Cats萌萌
浏览 1669回答 3
3回答

慕码人8056858

尝试: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

如果您确实想要按名称获取类型,可以使用以下内容:System.AppDomain.CurrentDomain.GetAssemblies().SelectMany(x => x.GetTypes()).First(x => x.Name == "theassembly");请注意,您可以提供有关您尝试加载的类型的更多信息,从而大大提高性能。
打开App,查看更多内容
随时随地看视频慕课网APP