使用WebApi和结构图依赖注入 [英] Using WebApi and structure map dependency injection

查看:66
本文介绍了使用WebApi和结构图依赖注入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尽管关于堆栈溢出的问题如此之多,与我的问题类似,但没有人能解决我的问题

我正在使用MVC4互联网应用程序,其中我只有几个MVC控制器,对于依赖项注入,我正在使用结构图.虽然依赖项注入在MVC控制器中可以正常工作,但是当我在同一MVC Internet应用程序中添加WebApi控制器并在WebApi控制器的构造函数中使用与在MVC控制器中使用的参数相同的参数时,尽管依赖项注入不适用于WebApi控制器,但是如果我不对WebApi控制器(无参数构造函数)使用依赖注入,那么它可以正常工作,但是对于WebApi依赖项注入(参数化构造函数),它将抛出错误找不到参数少的构造函数./p>

未在Internet(MVC应用程序)中为WebApi控制器注入结论约束.

很少有文章建议使用 DependencyResolver.SetResolver().我曾经使用过但未能解决问题.

解决方案

WebApi控制器不起作用的原因如下:

由于MVC Controller使用不同的DependenyResolver实例,该实例是System.Web.MVC .dll的一部分,并且在System.Web.MVC命名空间之内

http://msdn.microsoft.com/zh-cn/library/system.web.mvc.idependencyresolver(v=vs.98).aspx

Api控制器在哪里使用DependencyResolver实例,该实例是System.Web.Http的一部分.

解决方案

The reason why WebApi controller were not working is as following:

Since MVC Controller uses different DependenyResolver instance that is the part of System.Web.MVC .dll and within the System.Web.MVC namespace

http://msdn.microsoft.com/en-us/library/system.web.mvc.idependencyresolver(v=vs.98).aspx

Where as Api Controllers uses DependencyResolver instance that is part of System.Web.Http.

http://msdn.microsoft.com/en-us/library/system.web.http.dependencies.idependencyresolver(v=vs.108).aspx

这篇关于使用WebApi和结构图依赖注入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆