Asp.net mvc 找不到ToJSON方法-需要哪个命名空间?

Asp.net mvc 找不到ToJSON方法-需要哪个命名空间?,asp.net-mvc,asp.net-web-api,nlog,Asp.net Mvc,Asp.net Web Api,Nlog,我想将.NETWebAPI请求响应记录到新创建的文件中。所以,我在我的项目中实现了NLog机制,效果非常好。但代码下面的.ToJSON()行仍然没有得到解析。我不知道使用它需要哪个名称空间。有什么遗漏吗 我指的是这两篇文章,但还是不明白 (一) (二) .net名称空间 using NLog; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System

我想将.NETWebAPI请求响应记录到新创建的文件中。所以,我在我的项目中实现了NLog机制,效果非常好。但代码下面的.ToJSON()行仍然没有得到解析。我不知道使用它需要哪个名称空间。有什么遗漏吗

我指的是这两篇文章,但还是不明白

(一)

(二)

.net名称空间

using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Web;
using System.Web.Http.Tracing;
using System.Net.Http;
using System.Text;


没有这样的方法。中的示例演示了如何自己制作:

using System.Web.Script.Serialization;
using System.Data;
using System.Collections.Generic;
using System;


namespace WebApi.Helpers
{
    public static class JSONHelper
    {
        /// <summary>
        /// Extened method of object class, Converts an object to a json string.
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static string ToJSON(this object obj)
        {
            var serializer = new JavaScriptSerializer();
            try
            {
                return serializer.Serialize(obj);
            }
            catch(Exception ex)
            {
                return "";
            }
        }
    }
}

使用System.Web.Script.Serialization;
使用系统数据;
使用System.Collections.Generic;
使用制度;
命名空间WebApi.Helpers
{
公共静态类JSONHelper
{
/// 
///对象类的扩展方法,将对象转换为json字符串。
/// 
/// 
/// 
公共静态字符串ToJSON(此对象obj)
{
var serializer=新的JavaScriptSerializer();
尝试
{
返回serializer.Serialize(obj);
}
捕获(例外情况除外)
{
返回“”;
}
}
}
}

更好的方法是使用JSON.Net。它很可能已经在您的项目中引用过,并且
System.Web.Extensions.dll
现在已经很古老了(its):

公共无效跟踪(HttpRequestMessage请求、字符串类别、跟踪级别、操作跟踪动作)
{
如果(级别!=TraceLevel.Off)
{
if(traceAction!=null&&traceAction.Target!=null)
{
category=category+Environment.NewLine+“操作参数:”+JsonConvert.SerializeObject(traceAction.Target);
}
var记录=新跟踪记录(请求、类别、级别);
如果(traceAction!=null)traceAction(记录);
日志(记录);
}
}

System.Web.Script.Serialization;如何添加它?请阅读codeproject网站。。。将“System.Web.Extensions.dll”引用添加到project…traceAction.Target.ToJSON()。。。现在它工作得很好。但当它几乎将[{}]写入文件时,因为在调试它时,当我在运行时将光标放在目标上时,它会给我exp-messageArguments{object1}。它在第0个元素中包含必需的数据。但我无法访问它。有什么方法可以得到它吗?或者如果您已经使用了json.net,那么返回JsonConvert.SerializeObject(obj);
using System.Web.Script.Serialization;
using System.Data;
using System.Collections.Generic;
using System;


namespace WebApi.Helpers
{
    public static class JSONHelper
    {
        /// <summary>
        /// Extened method of object class, Converts an object to a json string.
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static string ToJSON(this object obj)
        {
            var serializer = new JavaScriptSerializer();
            try
            {
                return serializer.Serialize(obj);
            }
            catch(Exception ex)
            {
                return "";
            }
        }
    }
}
public void Trace(HttpRequestMessage request, string category, TraceLevel level, Action<TraceRecord> traceAction)
{
    if (level != TraceLevel.Off)
    {
        if (traceAction != null && traceAction.Target != null)
        {
            category = category + Environment.NewLine + "Action Parameters : " + JsonConvert.SerializeObject(traceAction.Target);
        }
        var record = new TraceRecord(request, category, level);
        if (traceAction != null) traceAction(record);
        Log(record);
    }
}