这是一个两部分问题:
有人可以提供ASP.NET / .NET属性列表,这些属性通常是与ExecutionContext一起流动的线程本地吗?
HttpContext.Current? Thread.CurrentContext? Thread.CurrentPrincipal中? Thread.CurrentCulture?
我可以依靠什么属性来存活/持续异步/等待?
还有什么?
有没有办法添加将使用ExecutionContext自动流动的特定于应用程序的上下文信息?像
这样的东西var ec = ExecutionContext.Capture();
ec.CustomContext["MyCustomContext"] = ACustomContext;
答案 0 :(得分:13)
最好的资源是Stephen Toub的ExecutionContext vs. SynchronizationContext。没有像您正在寻找的属性列表。
ASP.NET实际上使用SynchronizationContext
来HttpContext.Current
和treats Thread.CurrentPrincipal
rather oddly。
您可以使用LogicalSetData
/ LogicalGetData
添加自己的上下文。但是,您应该只存储不可变数据。我记录了这个on my blog。