aspnetcore结构图按请求范围

时间:2018-08-28 19:11:09

标签: asp.net-core dependency-injection structuremap

我正在使用StructureMap(但是这个问题更多是基于DI的),如果答案可以通过其他实现者实现,则将予以考虑。

x.For<ITTLogger>().Use< TTLogger>().Ctor<TTLoggerConfiguration>().Is(()=>ttlConfig).ContainerScoped();

我有一个自定义记录器,已将其标记为每个httpRequest的作用域,效果很好。这样,我添加了一个通过http请求标头进入API的correlationId。

使用aspnetcore,现在可以像这样直接从端点访问标头值

[FromHeader]字符串ttcorrelationId

在我的记录器上我也可以使用correlationid

Logger.SetCorrelationId(Guid.Parse(correlationId));

现在,在api端点中出现的每个请求的标头中都具有correlationidid,它设置了记录器的值,但是当其他类需要记录器时,就不再设置correlationId。

我的问题是,是否有一种方法可以在启动时在DI配置之外的Logger上设置LoggingId,现在还无法获取标头值,以便所有随后需要该Logger的类都设置了RelationshipId?

0 个答案:

没有答案