如何让用户在不要求他们知道我正在使用哪个IoC容器的情况下执行此 *** 作?
我目前的中途解决方案是按如下方式构建我的程序集:
1)定义仅包含接口的抽象程序集.
2)定义实现这些接口的具体组件.用户可以定义自己的内容以覆盖现有功能.
3)在单独的程序集中定义容器绑定;即每个混凝土组件一个装订组件.
这意味着混凝土组件不与特定的IoC容器耦合,如果我使用不同的容器,它们将被关闭以防止更改.但是,用户仍然需要知道我的框架正在使用哪个容器来编写绑定程序集,如果我更改了IoC容器(即从Ninject到Spring),他们需要释放新的绑定程序集.
我错过了什么吗?
解决方法 Common Service Locator是一种方法,但它只包含解析方法,而不是注册方法.您可能想看一下agatha-rrsl project中如何实现它.有一个更完整的解释here,但简而言之:
>定义与容器无关的接口,用于注册和解析类型
>提供不同容器的实现(或让用户提交实现)
警告:您可能无法在库中直接使用您选择的容器.
总结以上是内存溢出为你收集整理的c# – 如何避免与IoC容器耦合全部内容,希望文章能够帮你解决c# – 如何避免与IoC容器耦合所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)