这是我以前问过的一个问题的延伸
here.
长篇小说,我动态加载一个DLL,并使用以下代码形成一个类型:
Assembly assembly = Assembly.LoadFile("C:\\test.dll"); Type type = assembly.GetType("test.dllTest"); Activator.CreateInstance(type);
从那里我可以使用类型来引用dllTest类中的任何东西.该类默认运行时应该提出一个表单(在这种情况下,相当空白,所以不复杂).
我觉得我在这里丢失了一个关键的代码行,这是保持窗体加载在屏幕上的.
dllTest.cs(在DLL内)包括:
namespace test { public partial class dllTest : Form { public dllTest() { InitializeComponent(); } } }
InitializeComponent()设置窗体的布局,这太长了粘贴到这里,不应该有所作为.
有任何想法吗?
解决方法
您必须使用刚刚创建的表单执行某些操作:
Assembly assembly = Assembly.LoadFile("C:\\test.dll"); Type type = assembly.GetType("test.dllTest"); Form form = (Form)Activator.CreateInstance(type); form.ShowDialog(); // Or Application.Run(form)