【问题标题】:How to enable JSON.NET serialization/deserialization tracing in asp.net owin api project?如何在 asp.net owin api 项目中启用 JSON.NET 序列化/反序列化跟踪?
【发布时间】:2019-07-09 04:58:10
【问题描述】:

我关注了 JSON.NET blog - enable tracing

它仅显示了当您使用其中一个对象手动反序列化时如何启用跟踪。但是,在 asp.net OWIN 中,序列化/反序列化是由框架完成的,我想知道是否有任何方法可以将跟踪挂钩到 JSON.NET 的 asp.net OWIN 堆栈?

感谢任何帮助。

【问题讨论】:

  • 你是在做webapi还是mvc?

标签: c# json asp.net-web-api json.net owin


【解决方案1】:

您可以像这样启用跟踪

public class SimpleTracer : ITraceWriter
{
    public void Trace(HttpRequestMessage request, string category, TraceLevel level, 
        Action<TraceRecord> traceAction)
    {
        TraceRecord rec = new TraceRecord(request, category, level);
        traceAction(rec);
        WriteTrace(rec);
    }

     //here you can write logic for json serialization/deserialization    
    protected void WriteTrace(TraceRecord rec)
    {
        var message = string.Format("{0};{1};{2}", 
            rec.Operator, rec.Operation, rec.Message);
        System.Diagnostics.Trace.WriteLine(message, rec.Category);
    }
}

插入你的追踪

 config.Services.Replace(typeof(ITraceWriter), new SimpleTracer());

基于:Tracing in ASP.NET Web API 2

【讨论】:

  • "这里你可以编写json序列化/反序列化的逻辑",序列化和反序列化是在框架级别进行的。我相信 Web api 控制器在内部使用 JSON.NET 将 JSON(反)序列化为 .net 对象。我不确定如何跟踪“那个”(反)序列化
猜你喜欢
  • 2012-04-09
  • 1970-01-01
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-27
  • 1970-01-01
相关资源
最近更新 更多