关于plugin 程序 动态卸载 plugin 的思考

来源:互联网 发布:matlab数据平滑处理 编辑:程序博客网 时间:2024/06/06 20:43

  我觉得对于基于插件原理的软件,动态卸载的意义不是很大,因为身边用的知名软件大多都是靠重启实现的....除非是客户的需求必须要实现.....

 

 而且代码我也试过了:

                    AppDomainSetup ads = new AppDomainSetup();
                    ads.ShadowCopyFiles = "true";
                    AppDomain.CurrentDomain.SetShadowCopyFiles();
                    Evidence adevidence = AppDomain.CurrentDomain.Evidence;
                    AppDomain appDomain = AppDomain.CreateDomain("pluingManager");
                    appDomain.SetShadowCopyFiles();
                   
                    Assembly asm = appDomain.Load(strDllFullName);
                    object plugObject = Activator.CreateInstance(asm.GetType(strClassFullName));

                    IMenuPlugin plugin = (IMenuPlugin)plugObject;
                    plugins.Add(plugin);

 

存在的问题主要有以下几个:

1,appDomain.Load方法加载dll时候不会像Assembly.LoadFrom方法那样动态的去加载引用到得dll等信息...

2, 所有对象必须是可序列化的.....

3,网上好多人都有议论卸载不成功的事(我代码没有跑通,这一点我不过多评论)

  希望有共同爱好的朋友多多指教........

原创粉丝点击