我知道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
提交
取消