asp.net-mvc – MVC WebApi不使用AutofacWebApiDependencyResolv
发布时间:2020-12-15 18:57:19 所属栏目:asp.Net 来源:网络整理
导读:我有一个混合的MVC 4应用程序,其中一些控制器是Controller的常规实现,一些控制器是ApiController的实现.我也在使用Autofac for DI,但是看起来WebApi控制器“激活器”机制(由于缺乏一个更具体的术语)并没有使用Autofac解析器(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 Identity和Thinktecture.IdentityModel库如何相互关
- asp.net-core – VS 2017安装后无法运行基于project.json的
- Favicon只在主页ASP.NET MVC中显示
- 在ASP.NET 5 / Core 1.0开发期间使用完整的IIS
- ASP.NET FileUpload
- asp.net – 不引人注目的Javascript富文本编辑器?
- asp.net-core – 如何在Asp.net Core中使用soap web服务?
- asp.net-core – 控制器生命周期ASP.NET Core WebApi
- asp.net – 如何将新的Web应用程序部署到IIS站点的子目录,而
- asp.net – 是否可以在.net中读取.eml文件
推荐文章
站长推荐
- asp.net – 如何获得大型LinkedIn图像共享格式
- JSON字符串反序列化成对象_部分属性值反序列化失
- HttpHandler无法在ASP.NET MVC3 Web应用程序中工
- asp.net-mvc – 该字符串未被识别为有效的布尔字
- asp.net-mvc – ASP.NET MVC是否有分页解决方案,
- 在asp.net应用程序中打开/关闭连接的好习惯?
- asp.net – 带CSS的Control.ClientID
- .net – 如何处理异常是由ObjectDatasource的Sel
- asp.net-mvc-5 – 依赖注入结构图ASP.NET Identi
- asp.net-mvc – 如何为ASP.NET MVC站点定义catch
热点阅读