ASP.NET Web Api中HttpContext.Current.Items的替代方法

时间:2015-08-05 07:09:02

标签: c# asp.net-web-api nlog httpcontext

是否有非System.Web / HttpContext替代HttpContext.Current.Items,每请求数据存储?

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

这样,日志消息应始终保持一致,并且开发人员对所提供的格式或信息没有太大影响。

编辑:经过一些研究后我发现了这个: How can we create a callcontext for async .net methods? 我希望使用带有不可变集合的逻辑调用上下文将按预期工作。

1 个答案:

答案 0 :(得分:4)

HttpRequestMessage.Properties是一个IDictionary<string, Object>集合,用于存储任意的每个请求数据。在控制器操作中,这可以作为基础Request.Properties类的ApiController属性随时可用。

不确定您打算如何使用此功能进行日志记录,但您可能还想查看编写记录DelegatingHandler