手机版

网实现热插拔功能(动态替换功用)方案实例

时间:2021-11-13 来源:互联网 编辑:宝哥软件园 浏览:

几种方案一脚本化:采用熨斗或集成其它脚本引擎2 AppDomain:微软的包括框架就是为这个目的设计的。3 分布式负载平衡:轮流更新集群中的服务器四组装。加载自强签名程序集:因为相同标识的程序集在内存中只会加载一次,所以每次功能发生变化,都要增加程序集的版本号5组装。负荷强签名程序集广汽集团:因为相同标识的程序集在内存中只会加载一次,所以每次功能发生变化,都要增加程序集的版本号6组装。加载文件:程序集。加载文件可以多次加载相同标识的程序集,只要程序集所在的目录位置不同。重点说一下组装。加载文件

测试代码复制代码代码如下:使用系统;使用系统。集合。通用;使用系统Linq .使用系统。文字;使用系统。线程化。任务;使用系统。反思;使用系统IO;使用合同;命名空间test { class Program { static void Main(string[]args){ SetupPlugEnvironment();执行运算符(' 1。0 .0 .0 ');执行运算符(' 2。0 .0 .0 ');}私有静态void ExecuteOperator(字符串版本){ var operatorType=Type .GetType('实现.运算符,实现,版本=' version ' ');var operatorInstance=Activator .创建实例(操作类型)作为操作符;操作实例operate();}私有静态void setupplogenvironment(){ AppDomain .当前域。程序集解析=当前域_程序集解析;}静态程序集CurrentDomain_AssemblyResolve(对象发送方,ResolveEventArgs参数){ assembly name name=new assembly name(参数。名称);变量文件=路径。组合(@ ' E: \编码\快乐学习\加载内容学习\测试\绑定\调试\插件',名称。名字,名字版本。ToString(),名称。名字. dll ');控制台WriteLine(“”加载插件:'名称。版本);返回组件加载文件(文件);} } }

说明调用打字获取类型.会导致清除(清除的缩写)执行程序集探测过程,在正常的探测路径下没有找到程序集就会触发AssemblyResolve事件,为啥会触发两次呢?我还不知道。微软不推荐使用LoadFile(会加载相同标识的程序集多次),添加到采用的是应用领域采用的是装货港。

版权声明:网实现热插拔功能(动态替换功用)方案实例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。