c# - 删除 k__BackingField XML 而不删除 [Serializable] 属性

标签 c# asp.net-web-api xml-serialization

我通过 Web API 公开一个实体,当响应以 XML 形式返回时,它以一种非常不可读的方式被序列化。

我不想去掉 [Serializable] 属性,我也不希望用 [DataContract] 和 [DataMember] 属性注释实体及其字段。

我能够通过忽略 Serializable 属性来解决 JSON 序列化问题。我希望基本上能够为 XML 序列化做同样的事情。

有解决办法吗?

最佳答案

答案写在this关联 不过我会在这里再写一遍看看

将此添加到 WebApiConfig.cs:

config.Formatters.JsonFormatter.SerializerSettings.ContractResolver =
new DefaultContractResolver { IgnoreSerializableAttribute = true };

这解决了标有 [Serializable] 的类的问题。即使没有类具有该属性,我也会遇到间歇性问题,所以我现在总是使用此设置。

关于c# - 删除 k__BackingField XML 而不删除 [Serializable] 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25561304/

相关文章:

c# - MVC 4 - 如何有条件地禁用此按钮?

c# - C#System.Timers.Timer自动关闭?

rest - 如何在自托管的 o​​win 服务器中动态创建 Web API(REST api)?

c# - 使函数等待事件 C#

c# - Web API 如何返回多种类型

ssl - 在路由生成中强制使用 HTTPS

c# - 要序列化的属性有大小限制吗?

c# - 是否可以将自定义结构序列化为 xml 属性?

c# - 反序列化可空类型的最佳实践

c# - 使用 JSON.net(JsonConvert.SerializeObject 或 JsonConvert.DeSerializeObject)为缺少的复杂属性设置默认值