为了账号安全,请及时绑定邮箱和手机立即绑定

ShouldSerialize *()vs *指定的条件序列化模式

ShouldSerialize *()vs *指定的条件序列化模式

翻翻过去那场雪 2019-09-03 20:23:50
我知道ShouldSerialize *模式和* Specified模式以及它们是如何工作的,但两者之间有什么区别吗?当某些事情应该有条件地序列化时,是否有任何“陷阱”使用一种方法而不是另一种方法?此问题仅供使用XmlSerializer,但也欢迎有关此主题的一般信息。关于这个主题的信息非常少,因此可能是因为它们执行完全相同的目的而且它是一种风格选择。然而,看起来奇怪的是.NET实现者会通过反射分析类,并查找其中一个/两个模式来确定生成的序列化程序的行为,因为它会减慢序列化程序的生成速度,除非它只是一个向后兼容性工件。编辑: 对于那些不熟悉这两个模式的人,如果*Specified属性或ShouldSerialize*方法返回true,则该属性被序列化。public string MyProperty { get; set; }//*Specified Pattern[XmlIgnore]public bool MyPropertySpecified { get{ return !string.IsNullOrWhiteSpace(this.MyProperty); } }//ShouldSerialize* Patternpublic bool ShouldSerializeMyProperty(){     return !string.IsNullOrWhiteSpace(this.MyProperty);}
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 711 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信