.net6 引入autofac
引入NuGet

注冊Autofac
在Program的var app = builder.Build();前加上這段代碼
1 builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
2 builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
3 {
4 builder.RegisterType<LogRecordsService>().As<ILogRecordsService>();
5 });
1 builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
2 builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
3 {
4 builder.RegisterType<LogRecordsService>().As<ILogRecordsService>();
5 });
自動注冊一個類庫的服務
在Program注入autofac
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
{
Assembly assembly = Assembly.Load(ServiceCore.GetAssemblyName());
builder.RegisterAssemblyTypes(assembly)
.AsImplementedInterfaces()
.InstancePerDependency();
});
1 builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
2 builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
3 {
4 Assembly assembly = Assembly.Load(ServiceCore.GetAssemblyName());
5 builder.RegisterAssemblyTypes(assembly)
6 .AsImplementedInterfaces()
7 .InstancePerDependency();
8 });
在要注冊的類庫下的某個類中,寫一個方法
public static class ServiceCore
{
/// <summary>
/// 擷取程式集名稱
/// </summary>
/// <returns></returns>
public static string GetAssemblyName()
{
return Assembly.GetExecutingAssembly().GetName().Name;
}
}
引入NuGet

注冊Autofac
在Program的var app = builder.Build();前加上這段代碼
1 builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
2 builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
3 {
4 builder.RegisterType<LogRecordsService>().As<ILogRecordsService>();
5 });
1 builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
2 builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
3 {
4 builder.RegisterType<LogRecordsService>().As<ILogRecordsService>();
5 });
自動注冊一個類庫的服務
在Program注入autofac
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
{
Assembly assembly = Assembly.Load(ServiceCore.GetAssemblyName());
builder.RegisterAssemblyTypes(assembly)
.AsImplementedInterfaces()
.InstancePerDependency();
});
1 builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
2 builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
3 {
4 Assembly assembly = Assembly.Load(ServiceCore.GetAssemblyName());
5 builder.RegisterAssemblyTypes(assembly)
6 .AsImplementedInterfaces()
7 .InstancePerDependency();
8 });
在要注冊的類庫下的某個類中,寫一個方法
public static class ServiceCore
{
/// <summary>
/// 擷取程式集名稱
/// </summary>
/// <returns></returns>
public static string GetAssemblyName()
{
return Assembly.GetExecutingAssembly().GetName().Name;
}
}