Assembly frmAss=Assembly.LoadFrom("Test.dll");
System.Type type=frmAss.GetType("Test.frm1");if(type==null)
return;
object obj=System.Activator.CreateInstance(type);
Form frm=(Form)obj;
frm.Show();以上只是根据dll创建了一窗体frm1,如果frm1构造函数带参数怎么处理呢?另外,由于此段代码用于主程序根据菜单创建窗体使用,每次点菜单都要
Assembly frmAss=Assembly.LoadFrom("Test.dll"); 
会不会降低效率,怎么避免这种问题,或者能不能CreateInstance即可调用窗体呢.谢谢.

解决方案 »

  1.   

    Assembly frmAss=Assembly.LoadFrom("Test.dll");
    System.Type type=frmAss.GetType("Test.frm1", new object[]{args1, args2});LoadForm 方法在加载DLL前,应该会检查程序域中是否已经存在指定的DLL了
      

  2.   

    谢谢楼上.
    GetType 第二个参数不是这个类型,不能编译通过
      

  3.   

    继续.
    假如窗体构造函数只一个string参数怎么实例化.