Я создаю пользовательскую конфигурацию в ASP. NET Ядро во время конструктора автозагрузки, что-то вроде этого:
public Startup(IWebHostEnvironment environment, IConfiguration configuration) {
Environment = environment;
// Add extra config - configs added later override ones added earlier when key names clash
Configuration = new ConfigurationBuilder()
.AddConfiguration(configuration)
.AddXmlFile("appsettings.xml")
.Build();
}
Моя проблема в том, что, хотя этот новый IConfiguration
может быть доступ к ним осуществляется из ConfigureServices
и Configure
, к нему нельзя обратиться из вызова .UseSerilog()
в CreateHostBuilder
(Program.cs). Итак, я не могу получить доступ к своей конфигурации XML во время моего звонка:
webBuilder
.UseStartup<Startup>()
.UseSerilog((context, config) => {
config.ReadFrom.Configuration(context.Configuration);
});
Как я могу обойти это? Могу ли я сделать новую конфигурацию доступной для UseSerilog()
лямбда или я могу настроить регистратор позже, в ConfigureServices()
?