繁体   English   中英

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

[英]How to instantiate a class using reflection and access class method (no interface)

我有3个项目的C#解决方案。

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

模块1和模块2分别具有两种形式(如上所示)。 所以我要做的是从Module 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???

  }
}

关于如何执行此操作的任何线索?

Activator.CreateInstance有一个重载,它根据传递给它的参数选择要调用的构造函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM