我应该如何标记属性,他们不应该序列化,如果他们有默认值?例如,如果我有布尔值,它应该被序列化,如果只设置为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. JAXB避免保存默认值
- 5. XML:为避免XS /默认值:扩展
- 6. 如何避免预防默认
- 7. 如何避免默认Android浏览器
- 8. 避免属性序列化
- 9. 如何避免HashMap中的空值序列化?
- 10. C#XML反序列化W /默认值
- 11. 序列化发射默认值
- 12. 如何避免空格式化值
- 13. 避免SharePoint默认错误屏幕
- 14. Maven-2:避免默认打包?
- 15. 避免默认的构造函数
- 16. 避免双重序列化/反序列化
- 17. 避免XML序列化时序列化私有数据成员
- 18. 如何避免重复的列值
- 19. 这是合法的保持默认值,并避免异常?
- 20. 避免默认的0长值至h中显示:inputText的
- 21. 如何避免文本框中的默认文本?
- 22. 如何避免管理员编辑IIS默认网站属性
- 23. 如何避免karaf加载默认解析包
- 24. 如何避免thrust :: device_vector中元素的默认构造?
- 25. Flask默认路由如何避免重定向?
- 26. 如何避免对laravel 5.4的默认表单操作?
- 27. 如何避免Hibernate中的实体属性序列化
- 28. 如何避免循环引用,而序列化实体框架
- 29. MVC 5 - 不要序列化财产,如果默认值
- 30. 如何避免对'默认'值链的未定义索引警告?
这是什么目的! – 2012-02-24 11:04:57
有较小的序列化文件因为我需要发送它有时thrue gprs网络我需要为交通支付,无论如何在恢复(反序列化)期间,如果它们不存在,它们将被设置为默认值,所以如何避免序列化它们? – kosnkov 2012-02-24 11:07:06
我认为你要么编写自己的序列化程序,要么用自己的规则后处理内置序列化程序的结果。 – 2012-02-24 11:08:39