I'm trying to register something on IServiceCollection
during startup of my .NET 6 application:
public static class SomeRegistrationExtensions
{
public static IServiceCollection RegisterSomething(
this IServiceCollection services
)
{
var sp = services.BuildServiceProvider();
var logger = sp.GetService<ILogger>();
logger.Log(
LogLevel.Warning,
"Nothing gets registered here..."
);
return services;
}
}
My Program.cs
is picking up the registration:
using AspNetCoreLoggerInServiceRegistration.Registrations;
var builder = WebApplication.CreateBuilder(args);
builder.Logging.ClearProviders();
builder.Logging.AddConsole();
builder.Services.RegisterSomething();
However, ILogger
doesn't seem to be available:
Unhandled exception. System.ArgumentNullException: Value cannot be null. (Parameter 'logger')
at Microsoft.Extensions.Logging.LoggerExtensions.Log(ILogger logger, LogLevel logLevel, EventId eventId, Exception exception, String message, Object[] args)
at Microsoft.Extensions.Logging.LoggerExtensions.Log(ILogger logger, LogLevel logLevel, String message, Object[] args)
at AspNetCoreLoggerInServiceRegistration.Registrations.SomeRegistrationExtensions.RegisterSomething(IServiceCollection services) in /SomeRegistrationExtensions.cs:line 12
at Program.<Main>$(String[] args) in Program.cs:line 6
I created a repro on GitHub.