3

我有一个 ASP.NET Web API 项目,因为它不支持有 2 个主体参数,所以我使用 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 的遗留应用程序。谢谢。

4

1 回答 1

9

试试这个:

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

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

于 2013-03-13T20:34:46.630 回答