Класс ASP.NET Core - StartUp и инъекция зависимостей с ILoggerFactory

Вы можете использовать внешний объект внешний (проанализированный) общий .

Вы объявляете объект следующим образом:


Затем вы ссылаетесь на него как это:

&otherFile;

Полный пример:



]>

  
    &otherFile;
  

Когда синтаксический анализатор XML считывает файл, он будет расширять ссылку на сущность и включать XML-файл, указанный в качестве части content.

Если «otherFile.xml» содержал: this is my content

Затем XML был бы оценен и «замечен» парсером XML как:



  
    this is my content
  

Несколько ссылок, которые могут быть полезны:

0
задан Francisco Goldenstein 13 July 2018 в 19:28
поделиться

2 ответа

Я решил это, зарегистрировав некоторый код в событии, запущенном приложением.

В режиме Configure:

            appLifetime.ApplicationStarted.Register(() =>
            {
                InitializeSingletonObjects(app, loggerFactory);
            });

В этот момент все инициализировано правильно, и вы можете делать все, что угодно хотите в InitializeSingletonObjects. В моем случае это то, что я сделал.

        private void InitializeSingletonObjects(IApplicationBuilder app, ILoggerFactory loggerFactory)
        {
            // email template processor
            var emailRepository = app.ApplicationServices.GetService<IEmailRepository>();
            IEmailTemplateProcessor emailTemplateProcessor = app.ApplicationServices.GetService<IEmailTemplateProcessor>();
            string containerName = appConfiguration.AzureBlobStorage.BlobStorageContainerEmailTemplates;
            var emailTemplates = emailRepository.GetEmailTemplates(true);

            emailTemplateProcessor.Initialize(containerName, emailTemplates);
        }

Подробнее о IApplicationLifetime в https://www.khalidabuhakmeh.com/looking-at-asp-net-cores-iapplicationlifetime

0
ответ дан Francisco Goldenstein 17 August 2018 в 12:11
поделиться

Я не уверен, понял ли я эту проблему, но не могу ли вы просто сделать это как здесь :

public void Configure(IApplicationBuilder app, IHostingEnvironment env, 
ILoggerFactory loggerFactory)
{
    //...
    loggerFactory.AddLog4Net(); // << Add this line
0
ответ дан Hooman 17 August 2018 в 12:11
поделиться
  • 1
    Мне нужно, чтобы LoggerFactory был добавлен в другой объект в ConfigureServices, но LoggerFactory к этому времени не готов. Я добавляю то, что сработало для меня в ответ. – Francisco Goldenstein 19 July 2018 в 12:37
Другие вопросы по тегам:

Похожие вопросы: