Am pus în aplicare de injectare dependență în cererea mea. Și mi-servicii de configurare, după cum urmează.
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>();
Toate astea funcționează bine, cu excepția faptului că acum cadrul este exploatarea la consola, inclusiv conținutul de întrebări trimise la baza de date.
Cumva interne logare a fost activat dar nu văd unde am activat.
Cum pot preveni .NET din exploatarea la ecran?
Notă: Logger
este un exemplu din propria mea logare clasa ConsoleLogger
. Această clasă nu pune în aplicare ILogger
sau de a folosi orice altceva de la .NET. Este pur și simplu o clasă personalizat care, de asemenea, jurnalele de la consolă și un fișier. Exploatarea de la acest logger este de lucru bine. Și am confirmat .NET jurnalele nu sunt trimise la această clasă.
Update:
Aici e codul meu care configurează gazdă.
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();
}
Și aici este codul pe care îl numește.
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
și-a asumatlogging
parametrul de tipHostBuilderContext
dar am fost capabil să-l forțeze să fieILoggingBuilder
. Multumesc pentru ajutor.