使用Autofac在ASP.NET Web API上实现依赖注入

时间:2024-01-13 20:08:38

在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();
}