使用反射在 C# 中进行动态类访问
C# 开发人员经常遇到需要基于字符串表示的动态类访问的场景。 本文演示了如何利用反射从字符串中检索类引用。
假设您有一个表示类名的字符串(例如“MyClass”),并且您需要调用该类中的方法。反思提供了解决方案。
核心功能依赖于Type.GetType
方法。 这是一个例子:
<code class="language-csharp">using System; using System.Reflection; public class Example { public static void Main(string[] args) { Type type = Type.GetType("MyClass"); // Get the Type object MethodInfo method = type.GetMethod("MyMethod", BindingFlags.Public | BindingFlags.Static); // Get the method method.Invoke(null, null); // Invoke the method } } public class MyClass { public static void MyMethod() { Console.WriteLine("MyMethod called!"); } }</code>
此代码使用 Type.GetType
从字符串中获取 Type
对象。 GetMethod
然后检索指定的静态方法,Invoke
执行它。
请注意,此示例使用公共静态方法。 调整 BindingFlags
允许访问其他方法类型(例如,BindingFlags.Instance | BindingFlags.NonPublic
用于私有实例方法)。
理解 Type.GetType
和其他反射方法可以解锁与 C# 类的动态交互,为您的应用程序提供显着的灵活性。
以上是如何使用反射从字符串中获取 C# 类引用?的详细内容。更多信息请关注PHP中文网其他相关文章!