通过反射获取DLL的类实现加载窗体

时间:2021-04-19 16:05:48

1.创建一个DLL 类库,并新建一个窗体类,这个直接在vs上操作就好

2. 建立一个Testassembly工程

新建一个测试类

namespace Testassembly
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
string ss = AppDomain.CurrentDomain.BaseDirectory + "Debug\\TestDll.dll";
Assembly assembly = Assembly.LoadFile(ss); //获取类型,参数(名称空间+类)
Type type = assembly.GetType("TestDll.Form1"); //创建该对象的实例,object类型,参数(名称空间+类) // System.Reflection.MethodInfo method = type.GetMethod("Show");//方法的名称
object instance = assembly.CreateInstance("TestDll.Form1");
Form frm = (Form)instance;
frm.Show();
// method.Invoke(instance,Object[] parametors = new Object[] { "param" });
}
}
}

  

效果就是弹出一个新的窗口