最近做了一个项目, 基于插件式的框架程序, 设计目标是提供一套基础框架, 可以实现动态链接库的动态加载与卸载。减少模块之间的耦合,在分发产品时,可以根据客户的需要,自由组合各功能模块,提供最大的灵活性和可扩展性。
在实现功能模块动态加载、卸载时,发现.net只提供了动态链接库的加载,但是没有提供卸载功能,经过更深入的搜索,得知.net没有提供Assembly.UnLoad方法,只在应用程序域(AppDomain)提供卸载方法。
但是具体到我的项目中,在应用程序域上实现卸载方法,在插件管理上相当于跨进程访问对象,各种麻烦与限制,而且以我目前的功力,极易造成框架本身的不稳定。以下链接几个网页,给有这方面需要的朋友以及我自己提供一些参考。
Flier's Sky的Assembly.UnLoad(),http://www.cnblogs.com/flier/archive/2004/07/08/22382.html