2014-02-21 138 views
0

C#序列化程序忽略特定屬性:。這個類內有兩個屬性。 值指定被序列化。 沒有。如果在序列化期間我設置了一個斷點(>>>),那麼這行不會被調用。如果我將屬性名稱更改爲Value或valueX,則會發生序列化並調用斷點。 我被這個名字卡住了,因爲這個類是從我不控制的模式生成的。這是序列化程序中的一個錯誤,或者是C#中特殊字詞的值。我嘗試命名它@value,沒有喜悅。序列化程序忽略屬性:值

[System.Xml.Serialization.XmlAttributeAttribute()] 
public bool value { 
    get { 
>>>  return this.valueField; 
    } 
    set { 
     this.valueField = value; 
    } 
} 

/// <remarks/> 
//[System.Xml.Serialization.XmlIgnoreAttribute()] 
public bool valueSpecified { 
    get { 
     return this.valueFieldSpecified; 
    } 
    set { 
     this.valueFieldSpecified = value; 
    } 
} 

回答

0

使用「值」作爲屬性名稱,但通過「價值」的構造函數來XmlAttributeAttribute

+0

我寧願不改變類結構。我希望它儘可能符合架構。我真的很想理解這個問題。對我來說完全是無稽之談。 –

0

串行器首先查看valueSpecified,看是否value已明確設置,或者如果它被認爲是默認。

如果valueSpecified == true,串行器將得到值value並將其序列化。 如果沒有,序列化程序將假定該值是一個默認值,並且不會將其顯式序列化。

嘗試將設置valueSpecified設置爲true。

相關問題