IDependencyResolver是反模式吗?

时间:2011-04-13 18:25:58

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

我正在为遗留的ASP.NET应用程序设计一些体系结构更改。我为一些模拟ASP.NET MVC的IDependencyResolver的依赖项解析的类做了原型。我不会发帖,因为它几乎是相同的界面,但用其他自然语言。

我发现它可能被认为是服务位置,而后者通常(在某些情况下不完全)被判为有利于依赖注入。尽管如此,我找不到任何反对使用ASP.NET MVC的依赖项解析实现的建议。

ASP.NET MVC的IDependencyResolver是否被视为反模式?这是件坏事吗?

2 个答案:

答案 0 :(得分:25)

如果您使用其他名称查看signature you will see that it's just a Service LocatorService Locator is an anti-pattern我认为这种关系具有传递性,因此我认为 IDependencyResolver是一种反模式

除此之外,界面也是broken because it has no Release method

答案 1 :(得分:8)

我不相信......你可以将你想要的任何IoC注入到ASP.NET MVC中,这对我来说似乎是一个非常好的模式。

Here's a blog post关于将Unity注入ASP.NET MVC 3。