Я решил это, зарегистрировав некоторый код в событии, запущенном приложением.
В режиме Configure:
appLifetime.ApplicationStarted.Register(() =>
{
InitializeSingletonObjects(app, loggerFactory);
});
В этот момент все инициализировано правильно, и вы можете делать все, что угодно хотите в InitializeSingletonObjects. В моем случае это то, что я сделал.
private void InitializeSingletonObjects(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
// email template processor
var emailRepository = app.ApplicationServices.GetService();
IEmailTemplateProcessor emailTemplateProcessor = app.ApplicationServices.GetService();
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