如果我收到一个包含类名的字符串,并且我想将此字符串转换为真实类型(字符串中的类型),我该怎么做?
我试过了
Type.GetType("System.Int32")
例如,它似乎工作。
但是当我尝试使用自己的对象时,它总是返回 null …
我事先不知道字符串中会包含什么,因此这是我将其转换为真实类型的唯一来源。
Type.GetType("NameSpace.MyClasse");
任何想法?
如果类型在或调用程序集中,则只能使用类型 的 名称(当然还有其命名空间) 。mscorlib否则,您还必须包含程序集名称:
mscorlib
Type type = Type.GetType("Namespace.MyClass, MyAssembly");
如果程序集是强命名的,那么您也必须包含所有这些信息。Type.GetType(string)有关更多信息,请参阅文档。
Type.GetType(string)
或者,如果您已经引用了程序集(例如通过众所周知的类型),您可以使用Assembly.GetType:
Assembly.GetType
Assembly asm = typeof(SomeKnownType).Assembly; Type type = asm.GetType(namespaceQualifiedTypeName);