在什么情况下,我可以将在编译时静态引用的程序集换成另一个在运行时使用的程序集?例如:
应用程序组装:
- 参考 通用程序集
ServiceProviderFactory
服务组装中的引用
普通组装:
- 定义
IServiceProvider
服务组装:
- 提供
ServiceProviderFactory
(IServiceProvider
s 的工厂) - 参考 通用程序集
鉴于上述情况,我希望能够在安装时更换服务程序集,但我不知道在什么条件下新的服务程序集将继续加载。
我相信以下必须成立:
- 相同的程序集名称,
- 弱命名程序集或强命名程序集中的相同版本号,以及
ServiceProviderFactory
签名保持不变。
注意:使用反射和搜索服务程序集的实现似乎IServiceProvider
比依赖一些ServiceProviderFactory
具有固定签名的实现更好,但我仍然对上述答案感兴趣。