我有一个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的遗留应用程序。感谢。
答案 0 :(得分:9)
试试这个:
JsonSerializer serializer = JsonSerializer.Create(Configuration.Formatters.JsonFormatter.SerializerSettings);
这应该为您提供Web API使用的相同序列化程序。