在ASP.NET Web API里使用Autofac
1.通过NuGet安装Autofac.WebApi(当时安装的是Autofac 3.1.0)
PM > Install-Package Autofac.WebApi
2.在App_Start文件夹下新建AutofacWebApiConfig类
public class AutofacWebApiConfig { public static void Run() { SetAutofacWebApi(); } private static void SetAutofacWebApi() { ContainerBuilder builder = new ContainerBuilder(); HttpConfiguration config = GlobalConfiguration.Configuration; // Register API controllers using assembly scanning. builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); builder.RegisterType<ValueService>().As<IValueService>() .InstancePerApiRequest(); var container = builder.Build(); // Set the WebApi dependency resolver. config.DependencyResolver = new AutofacWebApiDependencyResolver(container); }
3.在Global中添加以下代码
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); //Call Autofac DI configurations AutofacWebApiConfig.Run(); }