我有一個序列化爲XML文件的類。有幾個很少使用但始終創建的屬性。如果我在XML中刪除它們,反序列化仍然有效,因爲它們具有默認值。如何告訴C#省略創建序列化過程中默認的屬性?
這些不必要的(bool)屬性使XML難於閱讀。
我可以以某種方式告訴C#省略仍具有默認值的元素或屬性嗎?
我有一個序列化爲XML文件的類。有幾個很少使用但始終創建的屬性。如果我在XML中刪除它們,反序列化仍然有效,因爲它們具有默認值。如何告訴C#省略創建序列化過程中默認的屬性?
這些不必要的(bool)屬性使XML難於閱讀。
我可以以某種方式告訴C#省略仍具有默認值的元素或屬性嗎?
指定DefaultValueAttribute,如果值匹配,則不會輸出。
使用XMLIgnore()屬性在序列化/反序列化中標記要插入的屬性。
不,這將** alays **排除它;問題是當它具有默認值時排除它。 – 2009-04-24 10:15:44
我認爲OP想要忽略具有默認值的屬性。您的解決方案會導致屬性始終被忽略。 – 2009-04-24 10:15:49
羅蘭有簡單的價值觀的答案。對於更復雜的場景,您可以添加一個名爲public bool ShouldSerializeFoo()
(屬性Foo
)的方法 - 它返回false
,它不會被序列化。
'[System.ComponentModel.DefaultValue(false)]'爲bool值做了它 - 謝謝:) – MrFox 2009-04-24 10:19:09