我知道ShouldSerialize *模式和* Specified模式以及它們是如何工作的,但兩者之間有什么區(qū)別嗎?當(dāng)某些事情應(yīng)該有條件地序列化時(shí),是否有任何“陷阱”使用一種方法而不是另一種方法?此問題僅供使用XmlSerializer,但也歡迎有關(guān)此主題的一般信息。關(guān)于這個(gè)主題的信息非常少,因此可能是因?yàn)樗鼈儓?zhí)行完全相同的目的而且它是一種風(fēng)格選擇。然而,看起來奇怪的是.NET實(shí)現(xiàn)者會(huì)通過反射分析類,并查找其中一個(gè)/兩個(gè)模式來確定生成的序列化程序的行為,因?yàn)樗鼤?huì)減慢序列化程序的生成速度,除非它只是一個(gè)向后兼容性工件。編輯: 對(duì)于那些不熟悉這兩個(gè)模式的人,如果*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 回答
- 0 關(guān)注
- 738 瀏覽
添加回答
舉報(bào)
0/150
提交
取消