- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用从 XSD 文档生成的 C# 类,我可以创建一个对象,并成功地将其序列化。但是,某些属性定义了 XmlDefaultValue。如果任何对象具有默认值,则在序列化对象时不会创建这些属性。
根据 documentation,这是预期的行为.但这不是我希望它表现的方式。我需要在 XML 文档中生成所有此类属性。
我已经检查了任何可以应用的代码属性,这些属性可能会强制输出它,即使它是默认值,但我找不到类似的东西。
有什么方法可以实现吗?
最佳答案
关于 DataContract 的最后一个答案不是答案。 XSD 是自动生成的,使用类的人无法控制原作者使用的属性。问题是关于基于 XSD 的自动生成的类。
另一个答案也有问题,因为定义了默认值的属性也可能不允许空值(这种情况经常发生)。唯一真正的解决方案是拥有一个序列化程序,您可以在其中告诉它在序列化方面要忽略哪些属性。这一直是当前 XML 序列化程序的一个严重问题,它们根本不允许传入哪些属性以强制序列化。
实际场景:
REST 服务在主体中接受 XML 以更新对象。 XML 具有由其余服务的作者定义的 XSD。剩余服务存储的当前对象设置了非默认值。用户修改 XML 以将其改回默认值...但是放在 REST 帖子正文中的序列化版本跳过了该值并且不包含它,因为它设置为默认值。
真是个泥潭……无法更新值,因为不导出默认值背后的逻辑完全忽略了 XML 可用于更新对象的想法,而不仅仅是基于 XML 创建新对象。我不敢相信这么多年了,还没有人修改 XML 序列化程序来轻松处理这种基本情况。
关于c# - 强制 XmlDefaultValue 值的 XML 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28054335/
使用从 XSD 文档生成的 C# 类,我可以创建一个对象,并成功地将其序列化。但是,某些属性定义了 XmlDefaultValue。如果任何对象具有默认值,则在序列化对象时不会创建这些属性。 根据 d
我是一名优秀的程序员,十分优秀!