【发布时间】:2011-01-04 23:27:10
【问题描述】:
我目前正在使用带有 Unity 的 Prism 开发 WPF 应用程序。该模型的功能被分成几个类库项目。对于每一组关注点,我都有一个实现项目和一个仅由接口和枚举组成的项目。目标是能够修改或完全替换实现 dll,而不会影响或不必修改应用程序中的任何其他内容。在这种情况下,我对如何在顶级应用程序中不硬引用两者的情况下将接口注册到它们的实现有点卡住了。
我知道它们必须在某个地方一起引用,但是在引导程序的顶级应用程序中发生这种情况是否违反最佳实践?对于这个特定问题,我是否应该研究 MEF 而不是 Unity?
【问题讨论】:
-
你能提供一个功能分开的示例模型吗?
-
该应用程序用作脚本 UI 自动化的播放器。我有一个我写的项目,其中包含我们希望自动化的 UI 项目的界面和一个实现自动化的单独项目。基本设置如下: Scripting.ComponentModel - Scripting - UIAutomation.ComponentModel - UIAutomation - 等等。我曾考虑过 Prism 模块,但我认为这些模块更适合 UI 组合。我曾考虑使用服务层来提供状态并抽象出一些细节,但在许多情况下,这实际上不会以增加复杂性为代价增加太多价值。
标签: architecture unity-container prism mef loose-coupling