【发布时间】:2011-06-14 02:49:29
【问题描述】:
有没有人使用结构映射与 asp.net mvc 3.0 的新 DI 功能?如果是这样,您能否发布一些示例代码或一些有用的示例链接?在尝试学习 ASP.NET MVC 3 时,我试图确保我使用了所有“新”功能,并且正在努力集成 IoC 容器。
【问题讨论】:
标签: asp.net-mvc tdd asp.net-mvc-3 structuremap ioc-container
有没有人使用结构映射与 asp.net mvc 3.0 的新 DI 功能?如果是这样,您能否发布一些示例代码或一些有用的示例链接?在尝试学习 ASP.NET MVC 3 时,我试图确保我使用了所有“新”功能,并且正在努力集成 IoC 容器。
【问题讨论】:
标签: asp.net-mvc tdd asp.net-mvc-3 structuremap ioc-container
正如其他人提到的,您希望查看 Common Service Locator (CSL),它是围绕任何容器(您选择的任何容器)的简单服务解析外观。
MVC3 在内部大量使用新的IDependencyResolver 接口,这有点像 CSL,但在 ASP.NET MVC 上下文中。好消息是,如果您已经在使用 CSL,那么您可以将其设置为 as Dependency Resolver for MVC。
这个主题对于任何容器都同样重要,而不是特定于 StructureMap。
那么那里发生了什么:
ServiceLocator.SetLocatorProvider(() => yourStructureMapAdapter)
DependencyResolver.SetResolver(yourStructureMapAdapter)
除了 MVC3 内置的 IoC 功能外,还可以最大限度地使用 IoC 工具的强大功能(例如,使用 StructureMap 中可用的程序集扫描)。
【讨论】:
我环顾四周,这是我得到的第一个 Google 结果。它很好地说明了 MVC 3 服务位置的新功能:http://bradwilson.typepad.com/blog/2010/07/service-location-pt1-introduction.html
虽然它依赖于 MVC 3 的 beta 版本,但我相信通过一些实验可以弄清楚。
简而言之,他们似乎添加了一些接口和扩展方法,您可以使用它们来调用 StructureMap 或任何您喜欢的 IoC 库。
更新:
我刚刚在我订阅的博客中偶然发现了这个链接。它有一些好看的示例代码。 http://stevesmithblog.com/blog/how-do-i-use-structuremap-with-asp-net-mvc-3/
【讨论】:
【讨论】: