将字符串转换为C#中的类型[重复]
如果我收到一个包含类名的字符串,并且想将此字符串转换为实型(字符串中的那个),该怎么办?
我试过了
Type.GetType("System.Int32")
例如,它似乎起作用。
但是当我尝试使用自己的对象时,它总是返回null。
我不知道字符串中会预先包含什么,因此这是将其转换为实型的唯一来源。
Type.GetType("NameSpace.MyClasse");
任何的想法?
回答:
您只能使用 刚刚 类型的名称(连同其命名空间,当然),如果该类型是mscorlib
或调用程序集。否则,您还必须包括程序集名称:
Type type = Type.GetType("Namespace.MyClass, MyAssembly");
如果程序集是严格命名的,则还必须包括所有这些信息。有关Type.GetType(string)
更多信息,请参见文档。
或者,如果您已经引用了该程序集(例如,通过一种众所周知的类型),则可以使用Assembly.GetType
:
Assembly asm = typeof(SomeKnownType).Assembly;Type type = asm.GetType(namespaceQualifiedTypeName);
以上是 将字符串转换为C#中的类型[重复] 的全部内容, 来源链接: utcz.com/qa/404736.html