使用反射按名称访问 C# 类
C# 反射提供了使用字符串名称访问类的机制。这对于与类动态交互而不需要直接引用至关重要。 这个过程的核心在于获取类引用,以便后续调用其方法。
Type.GetType()
方法是关键。它接受一个字符串(类名)并返回一个表示该类的 Type
对象。 例如,要获取对名为“FooClass”的类的引用:
<code class="language-csharp">Type t = Type.GetType("FooClass");</code>
有了 Type
对象,您就可以使用 GetMethod()
和 Invoke()
调用静态方法。 说明性示例:
<code class="language-csharp">MethodInfo method = t.GetMethod("MyMethod", BindingFlags.Static | BindingFlags.Public); method.Invoke(null, null);</code>
BindingFlags.Static
表示该方法是静态的; BindingFlags.Public
指定它是可公开访问的。
此方法的工作原理是假设该类驻留在当前程序集中。 更复杂的场景,例如从外部程序集或不同来源访问类,需要更复杂的方法,如替代解决方案中详述。
以上是如何使用反射在 C# 中检索类引用?的详细内容。更多信息请关注PHP中文网其他相关文章!