Dot-Net

哪些“目前”屬性隨 ExecutionContext 流動

  • December 21, 2021

這是一個兩部分的問題:

  1. 有人可以提供一個 ASP.NET/.NET 屬性的列表,這些屬性通常是與 ExecutionContext 一起流動的執行緒本地嗎?

HttpContext.Current?Thread.CurrentContext?Thread.CurrentPrincipal?Thread.CurrentCulture?

我可以依靠哪些屬性來生存/持久非同步/等待?

還有什麼? 2. 有什麼方法可以添加將與 ExecutionContext 一起自動流動的特定於應用程序的上下文資訊?就像是

var ec = ExecutionContext.Capture();
ec.CustomContext["MyCustomContext"] = ACustomContext;

最好的資源是Stephen Toub 的ExecutionContext vs. SynchronizationContext。沒有您正在尋找的屬性列表。

ASP.NET實際上是使用SynchronizationContextHttpContext.Current的,而且處理Thread.CurrentPrincipal得比較奇怪

LogicalSetData您可以使用/添加自己的上下文LogicalGetData。但是,您應該只儲存不可變數據。我在我的部落格上記錄了這一點。

引用自:https://stackoverflow.com/questions/17242094