使用Autofac和Serilog时如何解析ILogger?

Iva*_*ono 5 c# autofac serilog asp.net-core

我有使用 Serilog 和 Autofac 的 Asp.Net Core 3 应用程序。我收到以下异常:

DependencyResolutionException:无法使用可用服务和参数调用类型“MyApp.Services.LoginService”上的“Autofac.Core.Activators.Reflection.DefaultConstructorFinder”找到的构造函数:无法解析参数“Microsoft.Extensions.Logging.ILogger 记录器”构造函数“Void .ctor(Microsoft.Extensions.Logging.ILogger)”。

到目前为止我有以下内容:

Program.cs

        Log.Logger = new LoggerConfiguration()
           .Enrich.FromLogContext()
           .MinimumLevel.Debug()
           .WriteTo.Console(
               LogEventLevel.Verbose,
               "{NewLine}{Timestamp:HH:mm:ss} [{Level}] ({CorrelationToken}) {Message}{NewLine}{Exception}")
               .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

在模块中Autofac

        builder.RegisterType<LoggerFactory>()
            .As<ILoggerFactory>()
            .SingleInstance();

        builder.RegisterGeneric(typeof(Logger<>))
            .As(typeof(ILogger<>))
            .SingleInstance();

        builder.RegisterAssemblyTypes(AppDomain.CurrentDomain.GetAssemblies())
            .Where(t => t.Name.EndsWith("Service"))
            .AsImplementedInterfaces()
            .InstancePerLifetimeScope();
Run Code Online (Sandbox Code Playgroud)

在控制器中:

public class LoginController : ControllerBase
{
    private readonly ILogger<LoginController> logger;
    private readonly ILoginService loginService;

    public LoginController(
        ILogger<LoginController> logger, 
        ILoginService loginService)
    {
        this.logger = logger;
        this.loginService = loginService;
    }
}
Run Code Online (Sandbox Code Playgroud)

在服务中(在单独的项目中):

public class LoginService : ILoginService
{
    private readonly ILogger logger;

    public LoginService(ILogger logger) 
    {
        this.logger = logger;
    }
}
Run Code Online (Sandbox Code Playgroud)

我是不是错过了一步?