我有一个使用Autofac作为DI容器的ASP.NET Core应用程序。我还使用了提供ILogger <>依赖项的内置日志记录机制。现在,我想在Autofac中注册它。怎么样?
答案 0 :(得分:4)
如前所述,当您使用官方autofac-integration for asp.net-core时,您无需执行任何操作。如果您仍然想手动进行合法操作,则可以在ConfigureContainer
方法中执行以下操作。
public void ConfigureContainer(ContainerBuilder builder)
{
// ... more registrations
builder.RegisterInstance(new LoggerFactory())
.As<ILoggerFactory>();
builder.RegisterGeneric(typeof(Logger<>))
.As(typeof(ILogger<>))
.SingleInstance();
}
请记住,他们没有添加特定的日志记录提供程序。
答案 1 :(得分:0)
您可以使用Autofac注册在IServiceCollection
中注册的合并服务。为此,将以下内容添加到ConfigureServices
方法中:
public IServiceProvider ConfigureServices(IServiceCollection services)
{
// register classes in IServiceCollection
...
var builder = new ContainerBuilder();
// register services in Autofac
...
builder.Populate(services);
var container = builder.Build();
return container.Resolve<IServiceProvider>();
}