如何在 MVC3 和 WCF Web API 中为 ServiceRoute 启用依赖注入
我正在创建一个 MVC3 网站,它将使用 WCF Web API 公开 REST API。
为了将路由注册到 REST API,我将代码添加到 Global.asax 中,类似于下面的代码。
routes.MapServiceRoute<RelationsService>("relations");
这工作得很好,但我需要使用 DI 方法来注入服务所依赖的依赖项。 正如您在上面的代码中看到的,MVC 框架正在创建RelationsService 的实例,但这应该由 DI 容器来完成。
有谁知道如何配置 MVC3 以便我自己的 DI 容器用于创建服务实例?
I am creating a MVC3 website that will expose a REST API using WCF Web API.
To register routes to the REST API I add code to the Global.asax similar to the code below.
routes.MapServiceRoute<RelationsService>("relations");
This works well enough but i need to use a DI approach to inject the dependencies that the Service depends on.
As you can see in the code above the MVC framework is creating the instance of the RelationsService but this should be done by the DI container.
Does anyone know how to configure MVC3 so that my own DI container is used for creating the instances of the Services?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须使用 IResourceFactory 创建的 IHttpHostConfigurationBuilder 来扩展当前的服务注册调用。
然后,如果您使用 StructureMap 作为首选 IoC/DI 工具,您只需在 GetInstance 方法中请求服务即可。
You have to extend your current service registration call with an IHttpHostConfigurationBuilder that has been created with an IResourceFactory.
Then if you for instance use StructureMap as preferred IoC/DI tool you can just ask for the service in the GetInstance method.