我正在开发一个 ASP.NET WebApi(候选发布版)项目,其中使用了多个标有 [Serialized] 属性的 DTO。这些 DTO 不在我的控制范围内,因此我无法以任何方式修改它们。当我从 get 方法返回其中任何一个时,生成的 JSON 包含一堆 k__BackingFields,如下所示:
<Name>k__BackingField=Bobby
<DateCreated>k__BackingField=2012-06-19T12:35:18.6762652-05:00
根据我所做的搜索,这似乎是 problem with JSON.NET's IgnoreSerializableAttribute设置并解决我的问题,我只需要按照文章的建议进行全局设置。如何在 ASP.NET Web api 项目中全局更改此设置?
最佳答案
我找到了摆脱名称中的 k__BackingField 的简单方法。
该片段应该位于 Global.asax.cs 中的 Application_Start() 中的某个位置:
JsonSerializerSettings jSettings = new Newtonsoft.Json.JsonSerializerSettings();
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings = jSettings;
看起来默认设置可以解决这个问题。
关于json.net - 在 Json.net 中全局设置 IgnoreSerializedAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11125476/