阅读量:3
通过C#反射调用方法的步骤如下:
- 引入System.Reflection命名空间。
- 使用Type.GetType方法获取要调用方法的类的Type对象。
- 使用Type.GetMethod方法获取要调用的方法的MethodInfo对象。可以通过方法名称、参数类型等信息来获取。
- 使用MethodInfo.Invoke方法调用方法。传入要调用的实例对象(如果是实例方法)和方法的参数(如果有参数)。
下面是一个示例代码,演示如何通过C#反射调用一个方法:
using System; using System.Reflection; public class MyClass { public void MyMethod(string message) { Console.WriteLine("MyMethod: " + message); } } class Program { static void Main() { // 获取MyClass类的Type对象 Type type = typeof(MyClass); // 获取MyMethod方法的MethodInfo对象 MethodInfo method = type.GetMethod("MyMethod"); // 创建MyClass的实例 MyClass myObject = new MyClass(); // 调用MyMethod方法 method.Invoke(myObject, new object[] { "Hello World!" }); } }
运行以上代码,输出结果为:
MyMethod: Hello World!
注意:如果要调用的方法是静态方法,可以传入null作为实例对象。如果方法是私有的,可以使用BindingFlags.NonPublic标志来获取方法的MethodInfo对象。