我对像StructureMap这样的DI容器有点新,我用asp.net mvc应用程序已经用了很短的时间 . 现在,我正在拆分我的架构,它将拥有一个WCF服务层和一些消费者,如ASP.NET MVC应用程序,Silverlight应用程序和Winfors / WPF应用程序 . 当我使用带有asp.net mvc的SM时,我已经通过asp.net mvc的应用程序启动初始化了IOC,现在,对于许多项目使用我无法想象IOC配置应该位于的好地方 . 我也想在服务层制作DI(注入存储库) .
在这种情况下,我在哪里加载我的IOC配置以及我将如何在整个项目中使用(比如只在asp.net mvc应用程序中需要控制器工厂)?
1 回答
您创建并配置容器 per application .
如果您有ASP.NET MVC站点,则在Global.asax中创建和配置容器实例 .
在WCF服务中,您可以编写一个自定义
ServiceHostFactory
,它会旋转自定义ServiceHost
,再次附加一个使用容器实例来连接WCF服务的相应IInstanceProvider
. 这听起来很复杂,而且肯定比它应该更复杂 . 我之前在一个完全不同的背景下触及了这个主题,但this blog post应该给你一些提示 - 特别是如果你记住delegates are anonymous interfaces .