使用反射从字符串中检索 C# 类引用
C# 反射提供了动态访问和操作运行时类型信息的强大机制。 这包括仅使用其字符串表示形式检索类引用。
流程:
此任务的核心方法是Type.GetType()
。此方法接受包含完全限定类型名称的字符串,并返回表示该类型的 Type
对象。
示例:
假设您有一个名为 FooClass
的类。 要获取其 Type
对象:
<code class="language-csharp">string className = "FooClass"; Type type = Type.GetType(className);</code>
要访问 FooClass
中的静态方法(例如 MyMethod
),请使用 GetMethod()
:
<code class="language-csharp">MethodInfo method = type.GetMethod("MyMethod", BindingFlags.Static | BindingFlags.Public);</code>
最后,使用 Invoke()
调用该方法:
<code class="language-csharp">method.Invoke(null, null); // null for static methods, null for no parameters</code>
请记住,null
用作静态方法的第一个参数(不需要实例),第二个参数是参数数组(如果方法不带参数,则为 null)。
处理外部组件:
上面的示例假设 FooClass
驻留在同一个程序集中。对于位于不同程序集中的类型,必须提供程序集的名称作为完全限定类型名称的一部分。 确切的格式取决于程序集的位置。 有关在 Type.GetType()
方法中指定程序集名称的详细指导,请参阅 MSDN 文档。
进一步探索:
要更全面地了解 C# 反射,请参阅有关 Type.GetType()
、MethodInfo.GetMethod()
和 MethodInfo.Invoke()
的 Microsoft 官方文档。 这些资源提供了全面的详细信息和高级使用场景。
以上是如何使用反射从 C# 中的字符串获取类引用?的详细内容。更多信息请关注PHP中文网其他相关文章!