是否有非System.Web / HttpContext替代HttpContext.Current.Items,每请求数据存储?
我想保存请求的信息,保存它们并从我的记录器(NLog)中读取值。我发现一个好地方是DefaultHttpControllerActivator / IHttpControllerActivator。
这样,日志消息应始终保持一致,并且开发人员对所提供的格式或信息没有太大影响。
编辑:经过一些研究后我发现了这个: How can we create a callcontext for async .net methods? 我希望使用带有不可变集合的逻辑调用上下文将按预期工作。
答案 0 :(得分:4)
HttpRequestMessage.Properties
是一个IDictionary<string, Object>
集合,用于存储任意的每个请求数据。在控制器操作中,这可以作为基础Request.Properties
类的ApiController
属性随时可用。
不确定您打算如何使用此功能进行日志记录,但您可能还想查看编写记录DelegatingHandler