访问ASP.NET Web API中的默认JSON.NET序列化程序

时间:2013-03-13 14:43:24

标签: asp.net-web-api json.net

我有一个ASP.NET Web API项目,因为它不支持2个body参数,所以我使用JObject参数然后从中提取实际参数。像这样。

Public bool mymethod(JObject data){
   myclassA a = data["a"].toObject<myclassA>();
   myclassA b = data["b"].toObject<myclassB>();
}

但是2类类实现了ISerializable,我需要JSON.NET来忽略它。我已经设置了默认的JSON.NET序列化程序来执行此操作,并且在自动完成序列化时它可以正常工作。

但我需要获得对内置JSON.NET序列化程序的引用,以便我可以在上面的代码中使用它。

myclassA b = data["b"].toObject<myclassB>(defaultSerializer);

目前,我创建了JSON.NET序列化程序的新实例并使用它。但是如何在asp.net WEB API中获得对默认内置序列化器的引用?

此外,我无法更改类类型中的任何内容,因为这是我正在转换为web api的遗留应用程序。感谢。

1 个答案:

答案 0 :(得分:9)

试试这个:

JsonSerializer serializer = JsonSerializer.Create(Configuration.Formatters.JsonFormatter.SerializerSettings);

这应该为您提供Web API使用的相同序列化程序。