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