小编典典

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

all

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

我试过了

Type.GetType("System.Int32")

例如,它似乎工作。

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

我事先不知道字符串中会包含什么,因此这是我将其转换为真实类型的唯一来源。

Type.GetType("NameSpace.MyClasse");

任何想法?


阅读 60

收藏
2022-06-22

共1个答案

小编典典

如果类型在或调用程序集中,则只能使用类型 名称(当然还有其命名空间) 。mscorlib否则,您还必须包含程序集名称:

Type type = Type.GetType("Namespace.MyClass, MyAssembly");

如果程序集是强命名的,那么您也必须包含所有这些信息。Type.GetType(string)有关更多信息,请参阅文档。

或者,如果您已经引用了程序集(例如通过众所周知的类型),您可以使用Assembly.GetType

Assembly asm = typeof(SomeKnownType).Assembly;
Type type = asm.GetType(namespaceQualifiedTypeName);
2022-06-22