关于c#:ASP.NET Web Api中HttpContext.Current.Items的替代方法

Alternative to HttpContext.Current.Items in ASP.NET Web Api

是否有非System.Web / HttpContext替代HttpContext.Current.Items(按请求的数据存储)?

我想保存请求的信息,保存它们并从记录器(NLog)中读取值。我发现执行此操作的一个好地方是DefaultHttpControllerActivator / IHttpControllerActivator。

这样,日志消息应该始终看起来相同,并且开发人员不会对所提供的格式或信息产生太大影响。

编辑:经过更多研究后,我发现:
我们如何为异步.net方法创建callcontext?
我希望将逻辑调用上下文与不可变集合一起使用能够按预期工作。


HttpRequestMessage.PropertiesIDictionary<string, Object>集合,用于存储任意的每个请求数据。在控制器动作中,可以很容易地将其作为基ApiController类上的Request.Properties属性使用。

不确定您打算如何使用它进行日志记录,但是您可能还想研究编写日志记录DelegatingHandler