首页 >后端开发 >C++ >如何从 C# 中的字符串表示形式确定对象类型?

如何从 C# 中的字符串表示形式确定对象类型?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-23 14:47:13249浏览

C#中根据字符串表示确定对象类型

在C#中,可以将包含类型名称的字符串转换为相应的Type对象。但是,这种转换所使用的方法取决于类型是在与调用代码相同的程序集中定义,还是在不同的程序集中定义。

使用Type.GetType(string)

如果类型在同一个程序集中定义,可以使用Type.GetType(string)方法,并提供完全限定的类型名称作为字符串。例如,要获取int数据类型的Type,可以使用:

<code class="language-csharp">Type.GetType("System.Int32");</code>

使用Assembly.GetType(string)

如果类型在不同的程序集中定义,则还需要提供程序集名称。可以使用Assembly.GetType(string)方法来实现。首先,获取对程序集的引用,然后使用该引用来获取Type

<code class="language-csharp">Assembly asm = typeof(SomeKnownType).Assembly;
Type type = asm.GetType("Namespace.MyClass");</code>

命名空间和程序集限定

确保在提供给Type.GetType()Assembly.GetType()的字符串中包含类型的命名空间。此外,对于强命名程序集,可能需要包含完整的程序集标识,包括版本、区域性和公共密钥标记。

示例场景

考虑以下场景,其中有一个字符串包含类型的完全限定名称:

<code class="language-csharp">string typeName = "Namespace.MyClass, MyAssembly";</code>

根据MyAssembly是否被调用程序集引用,可以使用Type.GetType()Assembly.GetType()

<code class="language-csharp">// 如果 MyAssembly 被引用
Type type1 = Type.GetType(typeName);

// 如果 MyAssembly 未被引用
Assembly asm = typeof(SomeKnownType).Assembly;
Type type2 = asm.GetType(typeName);</code>

How to Determine Object Type from its String Representation in C#?

以上是如何从 C# 中的字符串表示形式确定对象类型?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn