【发布时间】:2015-06-25 09:03:34
【问题描述】:
我正在探索在 .NET 4.0 中引入的 MEF,但我在官方文档或任何其他网站上都没有找到管理版本控制的真正方法。
我发现了这个问题MEF Dependencies and versioning,但答案并不令人满意:在我看来,强大的命名核心和插件过于耦合。
我的例子:
- A 部分导入接口 ICar(1.0 版)
- B部分导出接口ICar
一切都很顺利。 发布后,我决定修改 ICar 以提供具有更复杂 ICar 接口的 1.1 版。显然 B 部分不能再加载了。 这里的最佳实践如何?显然正确的做法是不改变接口ICar。但改变 ICar 是不是最好的方法? 在博客上,我发现您需要:
- 创建 ICar2 而不是更改 ICar
- 为 ICar 创建(手动)适配器
- 同时导入 ICar2 和 ICar,后者需要使用适配器适应 ICar2。
似乎 System.Addin (MAF) 使用内置解决方案管理此场景。
到目前为止有什么想法吗?
顺便说一句,MEF 似乎是一个真正的好技术,但官方文档还不够(像往常一样微软......)
【问题讨论】:
标签: .net .net-4.0 assemblies mef .net-assembly