如何在ASP.NET OWIN API项目中启用JSON.NET序列化/反序列化跟踪?

时间:2019-02-15 04:31:24

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

我遵循了JSON.NET blog - enable tracing

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

感谢您的帮助。

1 个答案:

答案 0 :(得分: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