通过反射获取DLL的类实现加载窗体
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" }); } } }
效果就是弹出一个新的窗口