Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HttpRequestMessage未设置为对象的实例_C#_Asp.net_Debugging_Asp.net Web Api_Trace - Fatal编程技术网

C# HttpRequestMessage未设置为对象的实例

C# HttpRequestMessage未设置为对象的实例,c#,asp.net,debugging,asp.net-web-api,trace,C#,Asp.net,Debugging,Asp.net Web Api,Trace,我通过创建一个新的ITraceWriter为我的Web API应用程序启用了跟踪。这一切都正常,但是我没有从我的TraceRecord获取请求详细信息,因为它抛出一个异常,表示它们没有设置为对象的实例 public class LogTracer : ITraceWriter { public void Trace(HttpRequestMessage request, string category, TraceLevel level, Action&

我通过创建一个新的
ITraceWriter
为我的Web API应用程序启用了跟踪。这一切都正常,但是我没有从我的
TraceRecord
获取请求详细信息,因为它抛出一个异常,表示它们没有设置为对象的实例

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

    protected void WriteTrace(TraceRecord traceRecord)
    {
        var message = string.Format("\r\n\t{0} {1}\r\n\tOperator:{2}; 
        Operation: {3}; Message:{4}",
            traceRecord.Request.Method,
            traceRecord.Request.RequestUri,
            traceRecord.Operator,
            traceRecord.Operation,
            traceRecord.Message);

        System.Diagnostics.Trace.WriteLine(message, traceRecord.Category);
    }
}

我通过简单地添加以下内容来解决此问题:
request=newhttprequestmessage()
上面是我在
Trace
方法中的
TraceRecord
实例化

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