如果我收到一个包含类名称的字符串,并且我想将该字符串转换为真实类型(字符串中的类型),我该怎么做?
I tried
Type.GetType("System.Int32")
例如,它似乎有效。
但是当我尝试使用自己的对象时,它总是返回 null ...
我事先不知道字符串中会包含什么,因此它是我将其转换为真实类型的唯一来源。
Type.GetType("NameSpace.MyClasse");
任何想法?
你只能使用just类型的名称(当然还有它的命名空间),如果类型位于mscorlib
或调用程序集。否则,您还必须包含程序集名称:
Type type = Type.GetType("Namespace.MyClass, MyAssembly");
如果程序集是强命名的,则您还必须包含所有这些信息。请参阅文档Type.GetType(string) http://msdn.microsoft.com/en-us/library/w3f99sx1.aspx了解更多信息。
或者,如果您已经引用了程序集(例如通过众所周知的类型),您可以使用Assembly.GetType http://msdn.microsoft.com/en-us/library/y0cd10tb.aspx:
Assembly asm = typeof(SomeKnownType).Assembly;
Type type = asm.GetType(namespaceQualifiedTypeName);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)