我正在为遗留的ASP.NET应用程序设计一些体系结构更改。我为一些模拟ASP.NET MVC的IDependencyResolver的依赖项解析的类做了原型。我不会发帖,因为它几乎是相同的界面,但用其他自然语言。
我发现它可能被认为是服务位置,而后者通常(在某些情况下不完全)被判为有利于依赖注入。尽管如此,我找不到任何反对使用ASP.NET MVC的依赖项解析实现的建议。
ASP.NET MVC的IDependencyResolver是否被视为反模式?这是件坏事吗?
答案 0 :(得分:25)
如果您使用其他名称查看signature you will see that it's just a Service Locator。 Service 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。