Я использую StructureMap (но этот вопрос больше основан на DI), если ответ может быть получен через другого разработчика, он будет рассмотрен.
x.For<ITTLogger>().Use< TTLogger>().Ctor<TTLoggerConfiguration>().Is(()=>ttlConfig).ContainerScoped();
У меня есть специальный регистратор, который я пометил как область действия для httpRequest, который работает нормально. После этого я добавил correlationId, который входит в API через заголовок http-запроса.
с aspnetcore, теперь к значениям заголовка можно обращаться напрямую из конечной точки, как, например,
[FromHeader] string ttcorrelationId
, который также работает, я могу использовать корреляцию на моем логгере
Logger.SetCorrelationId(Guid.Parse(correlationId));
так, как сейчас, каждый запрос, который приходит в конечные точки API, имеет в заголовке значение корреляции, он устанавливает значение регистратора, но когда регистратору нужен другой класс, значение correlationId больше не устанавливается.
Мой вопрос заключается в том, есть ли способ установить correlationId на Logger за пределами конфигурации DI при запуске, когда еще слишком рано получать значения заголовка, чтобы у всех последующих классов, которым нужен регистратор, был установлен correlationId?