尤其是 DI/IoC 和 MEF,我的脚都湿了。
我有一个 Web 应用程序,它有两种类型的部分(也许有一天会更多),这些部分由需要访问整个环境的接口定义。该应用程序有一个列表,其中包含由 MEF 组成的每种类型的具体实现。
环境包括:
- 几个存储库
- 当前申请请求
- 渲染引擎
- 导航引擎
- 加上一些静态实用程序类
如何将接口定义放在单独的程序集中,同时指定环境注入?
显然,我不能只引用主程序集,因为它需要引用合同程序集并且我不能创建循环引用。
看来我需要为每个环境类及其公开可用的类型等创建一个接口......必须有更好的方法吗?!
也许我也错过了这里明显的更大缺陷,如果有人可以为我指出吗?