OWIN是依赖注入的替代品,因为它们具有共同的特征,或者它们是否一起工作?

时间:2014-09-11 09:40:57

标签: c# asp.net-mvc dependency-injection owin

我一直关注This MSDN tutorial关于实现OWIN来管理DbContext和Identity UserManager类的单个实例。

看起来不错,但我也在学习依赖注入(我一直在使用Ninject)来获取对象的实例。

我知道OWIN会为每个请求创建和检索一个对象的单个实例,DI会在每次需要对象时返回一个新实例。

两者协同工作还是分享共同功能?

我应该一起选择其中一个还是两个?

例如,我是否应该设置一个接口,该接口具有从OWIN上下文返回我的对象​​实例然后将其注入我的控制器的方法?

1 个答案:

答案 0 :(得分:3)

CreatePerOwinContext/Context.Get方法是常规IoC容器的一般替代品,并且不包含与依赖关系管理相关的[预期]功能 - 通常,不提供方法用于注入依赖项。如果有的话,它更类似于HttpContext的基本Service Locator或[ab]使用。

因此,虽然它可用于建立 IoC容器,但它替换DI或IoC容器。