2017-04-05 80 views
0

我有幾個看起來像這樣的類:我應該添加DataMember屬性來重寫派生類中的屬性嗎?

[DataContract] 
public class A { 

    [DataMember(Order = 1)] 
    public virtual string SomeString{ 
     get; 
     set; 
    } 
} 

[DataContract] 
public class B : A { 

    [DataMember(Order = 1)] 
    public override string SomeString{ 
     get{ // Do something } 
     set{ // Do something} 
    } 
} 

我需要包括SomeString將DataMember屬性在派生類中?是否將派生類的數據合約與​​基類隔離處理?

+0

我會建議編寫測試代碼來創建數據,然後序列化結果。您會看到添加到派生類的'type'屬性。 – jdweng

+0

這是一個很好的建議。謝謝。它看起來像我不需要派生類上的DataMember屬性來確保該屬性是序列化的。 – luxun

回答

0

我遵循jdweng的建議,即實際檢查派生類中帶有和不帶有DataMember屬性的序列化數據。 SomeString屬性在SomeString屬性上沒有DataMember屬性的派生類中被序列化。