过去几个小时我一直在试图整合Autofac和ASP.NET Web API 2应用程序。我一直关注Autofac及其wiki Integrating with ASP.NET Web API。
但很明显,这个wiki已经过时了,因为Web API 2.有没有人可以配置我的应用程序来使用Autofac?我只是放弃并回到Ninject。
我已安装Autofac,Autofac.WebApi2和Autofac.Mvc5
我无法拨打以下内容
containerBuilder.RegisterApiControllers(Assembly.GetExecutingAssembly());
.InstancePerApiRequest();
无法访问。事实上,我试图用名称中的Api调用的任何东西都没有定义。 (例如RegisterApiControllers, AsWebApiActionFilterFor, RegisterWebApiFilterProvider, InstancePerApiRequest, InstancePerApiControllerType
)
另外,我正在尝试使用Log4Net,并且我已经按照wiki实现了模块,现在在wiki中显示的LoggingActionFilter中,我将如何替换此行,因为Log4Net不包含Write
的定义
_logger.Write(actionContext.ActionDescriptor.ActionName);
答案 0 :(得分:2)
尝试使用Autofac.WebApi5 nuget(确保使用安装候选包的语法)而不是Autofac.WebApi2包。然后使用Global.asax.cs中的代码初始化它:
IocContainer container = // code to create your container
GlobalConfiguration.Configuration.DependencyResolver =
new AutofacWebApiDependencyResolver(container);
此设置适用于MVC5 / API2项目。