我正在尝试将一个使用了CallContext.LogicalGet/SetData的现有.NET应用程序移植到.NET Core。
当Web请求命中应用程序时,我会在CallContext中保存一个CorrelationId,以便于稍后日志记录时可以轻松地从CallContext中收集它,而无需在各处传输它。
由于CallContext已不再被支持(它是System.Messaging.Remoting的一部分),那么有哪些选项呢?
我看到的一个版本是使用AsyncLocal(How do the semantics of AsyncLocal differ from the logical call context?),但看起来我需要在各个地方传递这个变量,这与目的相违背,不太方便。
System.Runtime.Remoting.Messaging
的CallContext.LogicalGetData
和CallContext.LogicalSetData
。 - Ogglas