我应该如何标记属性,他们不应该序列化,如果他们有默认值?例如,如果我有布尔值,它应该被序列化,如果只设置为true,与可为空值相同,如果它们为空,我不想将它们包含在我的序列化文件中。如何避免序列化默认值?
回答
好吧,我自己找到了。它是[DefaultValue(false)]
。如果我用这个属性标记一些属性,那么只有当它和()中的值不同时才会被序列化。
感谢您的解决方案!任何想法如何避免,我必须把默认值两次? '[DefaultValue(“Status”)] public string statusTag =“Status”;' – pfuhlert 2017-10-25 13:39:36
有指定的属性这样的东西。我找不到msdn文档,但this article应该会有所帮助。 基本上你必须这样写:
//this property would not be serialized if it contains String.Empty value
public string PropertyName { get; set; }
[XmlIgnore]
public bool PropertyNameSpecified
{
get { return PropertyName != String.Empty; }
}
get {return PropertyName!= String.Empty; } 那是什么?你将bool与字符串进行比较,当我添加xmlIgnore时,它永远不会出现在序列化文件中,即使这个属性不为空或者在bool的情况下为true。 – kosnkov 2012-02-24 12:34:28
我编辑了我的答案。希望这给你正确的理解那里发生的事情。 – 2012-02-24 13:18:03
- 1. DateTimePicker默认值:如何避免它?
- 2. as.numeric如何避免默认排序
- 3. 如何不能序列化默认值
- 4. 如何避免默认的CallOutView出现?
- 5. 如何避免预防默认
- 6. 如何避免laravel默认分页
- 7. 如何避免默认Android浏览器
- 8. 想要避免默认零值
- 9. XML:为避免XS /默认值:扩展
- 10. JAXB避免保存默认值
- 11. 避免属性序列化
- 12. 如何避免struts2中textfield的默认值([email protected])
- 13. 我如何避免“警告:Field'xxx'在Storm中没有默认值”?
- 14. 如何避免使用Simple Xml序列化零值
- 15. 如何避免HashMap中的空值序列化?
- 16. 如何序列化非空值并避免空格(+符号)?
- 17. Protobuf不会序列化默认值
- 18. C#XML反序列化W /默认值
- 19. Xml反序列化和默认值
- 20. Wcf序列化排除默认值
- 21. 序列化发射默认值
- 22. 如何避免空格式化值
- 23. 如何避免未初始化的值?
- 24. XmlSerializer - 如何在反序列化枚举时设置默认值?
- 25. 避免安卓相机保存默认
- 26. 从IDL生成java(避免默认包)
- 27. 避免默认的构造函数
- 28. Maven-2:避免默认打包?
- 29. 避免SharePoint默认错误屏幕
- 30. 序列化为Json时避免ConcurrentModificationException?
这是什么目的! – 2012-02-24 11:04:57
有较小的序列化文件因为我需要发送它有时thrue gprs网络我需要为交通支付,无论如何在恢复(反序列化)期间,如果它们不存在,它们将被设置为默认值,所以如何避免序列化它们? – kosnkov 2012-02-24 11:07:06
我认为你要么编写自己的序列化程序,要么用自己的规则后处理内置序列化程序的结果。 – 2012-02-24 11:08:39