在 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。
这样日志消息看起来应该总是一样的,开发人员对提供的格式或信息没有太大影响。
编辑:经过更多研究,我发现了这个:
How can we create a callcontext for async .net methods?
我希望将逻辑调用上下文与不可变集合一起使用会按预期工作。
HttpRequestMessage.Properties
是一个 IDictionary<string, Object>
集合,用于存储每个请求的任意数据。在控制器操作中,这很容易作为 Request.Properties
属性 在基础 ApiController
class.
上可用
不确定您打算如何使用它进行日志记录,但您可能还想研究编写一个日志记录 DelegatingHandler
是否有非 System.Web/HttpContext 替代 HttpContext.Current.Items 的按请求数据存储?
我想保存请求的信息,保存它们并从我的记录器 (NLog) 中读取值。我发现做这个的好地方是 DefaultHttpControllerActivator/IHttpControllerActivator。
这样日志消息看起来应该总是一样的,开发人员对提供的格式或信息没有太大影响。
编辑:经过更多研究,我发现了这个: How can we create a callcontext for async .net methods? 我希望将逻辑调用上下文与不可变集合一起使用会按预期工作。
HttpRequestMessage.Properties
是一个 IDictionary<string, Object>
集合,用于存储每个请求的任意数据。在控制器操作中,这很容易作为 Request.Properties
属性 在基础 ApiController
class.
不确定您打算如何使用它进行日志记录,但您可能还想研究编写一个日志记录 DelegatingHandler