asp.net-mvc – MVC WebApi不使用AutofacWebApiDependencyResolver
|
我有一个混合的MVC 4应用程序,其中一些控制器是Controller的常规实现,一些控制器是ApiController的实现.我也在使用Autofac for DI,但是看起来WebApi控制器“激活器”机制(由于缺乏一个更具体的术语)并没有使用Autofac解析器(AutofacWebApiDependencyResolver),这导致当我创建一个异常时抛出异常请求我的一个api控制器.这是错误: <Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
Type 'MyApp.Areas.Api.Controllers.MyController' does not have a default constructor
</ExceptionMessage>
<ExceptionType>System.ArgumentException</ExceptionType>
<StackTrace>
at System.Linq.Expressions.Expression.New(Type type)
at System.Web.Http.Internal.TypeActivator.Create[TBase](Type instanceType)
at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.GetInstanceOrActivator(HttpRequestMessage request,Type controllerType,Func`1& activator)
at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request,HttpControllerDescriptor controllerDescriptor,Type controllerType)
</StackTrace>
</Error>
这是我如何设置: DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); System.Web.Http.GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container); 我对Autofac.WebApi整合的理解是,上述是使WebApi使用Autofac解析器的唯一要求,所以可能会发生什么? 旁注:我可以想到的唯一愚蠢的部分可能是有可能是有我的WebApi控制器在一个MVC区域,它不受DefaultHttpControllerSelector的支持,所以实现了一个自定义的(相对于Andrew Malkov) .我不直觉,这将对解析器有任何影响,但是,因为选择器只返回一个稍后用于激活的类型. 解决方法要为Web.API设置Autofac,您需要做两件事情:>注册Autofac依赖关系解析器(在App_Start中): GlobalConfiguration.Configuration.DependencyResolver =
new AutofacWebApiDependencyResolver(container);
>并在您的容器构建器中注册您的Api控制器,其中包含: containerBuilder.RegisterApiControllers(Assembly.GetExecutingAssembly()); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – Razor如何创建一个CheckBox并使其为READONL
- asp.net-mvc – 在Visual Studio 2015中的ASP.NET MVC 5项目
- asp.net – 对框架程序集“System.Runtime,Version = 4.0.1
- asp.net – 在Web.config帮助中定义tagPrefixes
- asp.net – 如何在一个新的选项卡中打开asp:HyperLink.Nav
- 有没有带语音记录示例代码的ASP.NET?
- asp.net-mvc – ASP.NET MVC:使用EditorFor()和枚举的默认
- asp.net-mvc – 使用@ Html.Partial渲染usercontrol(cshtml
- asp.net – IE7和8随机挂起CSS图像
- asp.net核心 – 无法在IISExpress中启动ASP.NET Core RC2 W
- 如何在ASP.NET应用程序中避免SQL注入攻击?
- asp.net-mvc – MVC – 在同一页面上与多个实体进
- asp.net删除文件session丢失
- asp.net-mvc – asp.net mvc通用控制器
- 在ASP.Net MVC和IIS 7.5中设置最佳http缓存头和服
- asp.net – NHibernate – ManagedWebSessionCon
- iis-7 – 本地语言的布尔值
- asp.net – 如何获取Page.ClientScript.Register
- asp.net – 使用Linq将单个值返回给SQL
- asp.net-mvc – SquishIt vs. MVC 4.0 Bundler
