1. 程式人生 > 其它 >ASP.NET Core 6.0 中使用 Autofac

ASP.NET Core 6.0 中使用 Autofac

1. 引用NuGet包

Install-Package Autofac -Version 6.3.0
Install-Package Autofac.Extensions.DependencyInjection -Version 7.2.0

2. Program 中註冊使用

2.1 普通注入

builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
builder.Host.ConfigureContainer<ContainerBuilder>(builder => {
    builder.RegisterType<A>().As<IA>();  // 直接註冊某一個類和介面,左邊的是實現類,右邊的As是介面
});

2.2 反射程式集方式服務註冊

builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
{
   var assemblysServices = Assembly.Load("Exercise.Services");
   containerBuilder.RegisterAssemblyTypes(assemblysServices)
              .AsImplementedInterfaces()
              .InstancePerLifetimeScope();
});

還可以進行選擇性批量注入,注入之後通過 建構函式或者屬性注入的方式使用。
.net core 3.1 使用autofac注入,不同點只在於 Program 中的註冊方式。

3. AutoFac中常用方法說明