如果你封装了一个DLL,你可以用引用的方法去调用它,这是肯定的!你也可通过反射的方法去调用它!
例如:
新建一个类库项目,命名为 DLLForm,这个类库里面你可以添加一个窗体,命名为 “MyForm”。
在同一个解决方案里面添加一个应用程序,命名为MyApplication,并将其设为启动项
现在我们不直接引用DLLForm这个项目,而是通过反射来进行调用。
在窗体Form1中添加一个按钮事件,执行的代码如下
string[] arFile =
System.IO.Directory.GetFiles(Application.StartupPath, "DLLForm.dll");
for (int i = 0; i < arFile.Length; i++)
{
System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFrom(arFile[i]);
foreach (Type type in assembly.GetTypes())
{
object myForm = Activator.CreateInstance(type) as Form;
if (myForm != null)
{
((Form)myForm).ShowDialog();
return;
}
}
}
结果如下:(记得运行前将DLLForm这个DLL与MyApplication放在同一个目录下,否则你要使用绝对路径)