Koy*_*nov 5 c# xml serialization xsd.exe
我有一些XSD架构由xsd.exe生成的.cs文件.
我的问题是,当我尝试将这些类序列化为xml时,其值与xsd模式中定义的默认值匹配的属性不会被序列化.
当我删除[System.ComponentModel.DefaultValueAttribute(typeof(<someType>), "<SomeValue>")]
代表默认字段的成员的属性时,我发现我的问题已解决.
所以我的问题是没有更优雅的方式来做到这一点?例如,有没有办法指定我想要默认值序列化?
简短的版本是:是的。看起来这是最简单的方法。
我已经尝试过“明显”的东西(特别是支持的*Specified和ShouldSerialize*模式XmlSerializer,而且IsNullable),但它只是继续不包含该值。
接下来的选择要么是IXmlSerializable(这很困难),要么是XmlAttributeOverrides(重复的努力)——这两种选择在这里都不是特别有吸引力。我想知道你现在的做法是不是工作量减少了?当然,您可以简单地导出 WSDL 并对其进行编辑以删除默认值(并从编辑后的版本生成)。
顺便说一句 - 如果这是 WCF,则有 确实[DataMember(EmitDefaultValue = ...)]可以控制它;也许他们将其添加为功能请求?
| 归档时间: |
|
| 查看次数: |
1639 次 |
| 最近记录: |