C# Winfrom 动态加载程序集
题:
主系统
子系统1、子系统2、子系统3、子系统4
公共类库1、公共类库2【公共系统仅供所有子系统调用】
主系统通过反射调用子系统:
要求:能加载子系统程序集,能卸载子系统程序集
谁帮忙解决100分相送,若嫌不够另外加分。
------解决方案--------------------建议楼主好好研究一下Assembly
------解决方案--------------------
用System.Reflection.Assembly.Load 动态加载程序集(.exe或dll)
如:Assembly a = Assembly.LoadFrom("dy_loadAsse.exe");
用AppDomain.Unload 方法 卸载指定的应用程序域中的所有程序集。
参考:
1..NET 动态加载程序集(一)
2..NET 动态加栽程序集(二)
3..NET 动态加载程序集(三)
------解决方案--------------------
------解决方案--------------------Assembly a = Assembly.LoadFrom(DLL路径);
------解决方案--------------------动态加载程序集有什么难的?难的在你系统的解耦,只有你的系统很好的解耦了,动态加载程序集才有威力;
------解决方案--------------------
------解决方案--------------------C# code
没啊神,竟然有人知道?
------解决方案--------------------
实现插件结构
Form1 fm=(Form)Assembly.Load("").CreateInstance("");
fm.MdiParent=this.ParentForm;
fm.Show();
fm.Dock=DockStyle.Fill;
------解决方案--------------------
------解决方案--------------------
我 也 很 想 知 道 这 个 怎 么 做
------解决方案--------------------
子系统DLL.AssemblyInfo.cs 中加入自定义属性 A。
利用反射加载运行目录下所有DLL。判断这些DLL是否含有自定义属性 A,有则加载到程序集。
在窗体加载的时候,对符合条件的DLL进行操作,比如用反射实例化,此类操作应用接口操作起来会比较简单。
------解决方案--------------------
[color=red]mark[/color]