[英]Should I rely on dynamically loaded assemblies?
我有以下情况。
Data
。 Data
。 Data
作为输入。 诀窍是,所有这些程序集都是插件并动态加载。 当然,F1和F2都引用D,但在运行时,所有三个都由主机应用程序加载。
现在如果有人用更新的版本替换D二进制文件会有什么变化呢?
我写了一个测试应用程序,它做了类似的事情,结果如下:
如果.NET跟踪接口调用,我很好。 那是因为访问库中未更改的部分只会起作用,如果该部分发生变化,我只会告诉我一个例外。 因此它将工作(在接口级别上)或不工作 - 没有未定义的行为。
我的问题:
第二个问题:在Visual Studio中,有一种简单的方法可以强制您的应用程序使用特定版本的引用程序集。 只需单击引用下的程序集,然后查看属性。 有一个名为“特定版本”的属性。 如果将其设置为true并在运行时加载另一个,则会出现异常。
您的第一个问题:我不确切知道.Net何时能够使用程序集确定它是否未编译。 因此,如果类/接口的签名发生更改,.Net将抛出异常。 我认为如果新程序集中类/接口中的方法/属性具有修改的签名,.Net只会尝试使用新程序集并抛出异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.