- namespace TestReflection
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void comboBoxEdit1_SelectedIndexChanged(object sender, EventArgs e)
- {
- string MethodName = comboBoxEdit1.SelectedItem.ToString();
- TestMethod(MethodName, MethodName);
- }
- /// <summary>
- /// 反射调用类中的方法
- /// </summary>
- /// <param name="MethodName"></param>
- /// <param name="Text"></param>
- private void TestMethod(string MethodName, string Text)
- {
- try
- {
- //// 1.Load(命名空间名称),GetType(命名空间.类名)
- Type type = Assembly.Load("TestReflection").GetType("TestReflection.Test");
- //// 2.GetMethod(需要调用的方法名称)
- MethodInfo method = type.GetMethod(MethodName);
- //// 3.调用的实例化方法(非静态方法)需要创建类型的一个实例
- object obj = Activator.CreateInstance(type);
- //// 4.方法需要传入的参数
- object[] parameters = new object[] { this, Text };
- //// 5.调用方法,如果调用的是一个静态方法,就不需要第3步(创建类型的实例)
- //// 相应地调用静态方法时,Invoke的第一个参数为null
- method.Invoke(obj, parameters);
- }
- catch
- {
- }
- }
- }
- }
相关文章
- 12-02调用的方法里接收一个List<>类型的参数,里面是自定义的EC类, 我要通过反射构建这List对象
- 12-02小鱼提问3 static方法中可以访问某个类的私有变量吗(不通过反射的其他非正常手段)?什么情况下可以?
- 12-02.Net 6 EnableDynamicLoading利用反射动态加载DLL类库的方法(解决类库不包含Nuget依赖包的问题)
- 12-02c# 在静态方法里,怎么能得到调用者的类名?
- 12-02c#利用反射实现对类中的常量进行取值和对应常量的注释
- 12-02C#反射调用类的私有方法
- 12-02自用的基于Emit的C#下DataTable转实体类方法
- 12-02DataTable和DataRow利用反射直接转换为Model对象的扩展方法类
- 12-02C# 如何利用反射,将字符串转化为类名并调用类中方法
- 12-02unity3D 中的C#脚本一个类调用另一类中简单方法