[英]Common Service Locator and implementations of IDependencyResolver
我正在建立一个用于自然语言会话处理的库。 在许多方面,它的行为类似于MVC3,因为它具有控制器和操作方法。 在实例化Controller类的构造函数时,它也使用与MVC3几乎相同的方式使用依赖项注入。 主要区别在于英文句子同时替换了URL和HTTP的形式值。 路由基于匹配的句子结构; 输入的参数是英语句子中使用的单词和短语的含义。
目前,它使用Autofac进行依赖注入,但是我想删除该依赖关系,并允许调用者使用任何DI容器。
如果我在解决方案中使用P&P / Codeplex 通用服务定位器项目,则调用者仍然需要针对我的引擎公开的接口实例提供其自己的IServiceLocator
实现。 如果我使用MVC3中的IDependencyResolver
,则至少存在从各种DI容器到该接口的映射的现有实现。
我是不是该:-
IDependencyResolver
接口。 object
作为依赖项解析器,然后通过鸭式输入它来获取我需要的一种方法,这样我就可以使用MVC3接口,甚至不必依赖ASP.NET MVC3。 根据定义,Common Service Locator是一个永不更改且不需要特定版本的接口程序集。
此外,所有通用IOC库现在都具有可连接到通用服务定位器的实现。
因此,选项1是最佳选择,而新版本的Common Service Locator破损的风险实际上为零。
感谢Philip Laureano协助回答此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.