如何使用反射和访问类方法实例化类(无接口)

本文关键字:接口 实例化 类方法 何使用 反射 访问 | 更新日期: 2023-09-27 18:03:08

我有一个c#解决方案,有3个项目。

  1. Windows窗体应用程序
  2. Windows库模块1 (frmSearch, frmDetail)
  3. Windows库模块2 (frmSearch, frmDetail)

模块1和模块2各有两种形式(如上所示)。所以我想做的是从模块2我需要得到Module1.frmDetail,然后实例化类,然后访问它的构造函数,这样我就可以传递一个参数。

问题是我没有Module1.frmDetail的接口(不知道我是否需要它),这是我从Module2.frmSearch的实际代码:

// Use Reflection to load Module1.frmDetail
if(System.Reflection.Assembly.GetEntryAssembly() != null)
{
  System.Reflection.Assembly a = System.Reflection.Assembly.Load("Module1.frmDetail");
  if(a != null)
  {
    System.Type type = a.GetType("Module1.frmDetail");
    var frm = Activator.CreateInstance(type);
    // here i want to pass a parameter to the constructor???
  }
}

你知道怎么做吗?

如何使用反射和访问类方法实例化类(无接口)

激活器过载。创建实例,根据传递给它的参数选择要调用的构造函数