Ho implementato l'iniezione di dipendenza nella mia applicazione. E I servizi di configurazione come segue.
IConfiguration configuration = context.Configuration;
services.AddDbContext<ApplicationDbContext>(options =>
{
options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
});
services.ConfigureRailIncApi(configuration);
services.Configure<EmailSettings>(configuration.GetSection("EmailSettings"));
services.AddSingleton(configuration);
services.AddSingleton(Logger);
services.AddSingleton<Application>();
services.AddSingleton<ServiceManager>();
Tutto questo funziona bene, tranne ora che il quadro è la registrazione della console, tra cui il contenuto di un qualsiasi query inviate al database.
In qualche modo l'interno è stata attivata la registrazione ma non riesco a vedere dove mi hai permesso.
Come si può prevenire .Al NETTO di registrazione sullo schermo?
Nota: Logger
è un'istanza della mia classe di registrazione ConsoleLogger
. Questa classe non implementa ILogger
o utilizzare qualsiasi altro .NET. Si tratta semplicemente di una classe personalizzata che registra anche per la console e un file. La registrazione da questo strumento sta lavorando bene. E ho confermato la .NET registri non vengono inviati a questa classe.
Aggiornamento:
Ecco il mio codice che consente di configurare l'host.
public void Configure(string[] args, Action< HostBuilderContext, IServiceCollection> configureServices, Action<IHostBuilder> configureHost)
{
IHostBuilder hostBuilder = Host.CreateDefaultBuilder(args);
hostBuilder.ConfigureServices((context, services) =>
{
services.AddSingleton(this);
configureServices(context, services);
});
configureHost(hostBuilder);
AppHost = hostBuilder.Build();
}
Ed ecco il codice che chiama.
ApplicationServices appServices = new();
appServices.Configure(args, (context, services) =>
{
IConfiguration configuration = context.Configuration;
services.AddDbContext<ApplicationDbContext>(options =>
{
options.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
});
services.ConfigureRailIncApi(configuration);
services.Configure<EmailSettings>(configuration.GetSection("EmailSettings"));
services.AddSingleton(configuration);
services.AddSingleton(Logger);
services.AddSingleton<Application>();
services.AddSingleton<ServiceManager>();
},
builder =>
{
});
ConfigureLogging
assunto illogging
il parametro è di tipoHostBuilderContext
ma sono stato in grado di forzare per essereILoggingBuilder
. Grazie per il vostro aiuto.