Document

.net6 引入autofac

.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;
  }
}
posted @ 2022-02-15 13:25  从未被超越  阅读(590)  评论(0)    收藏  举报