2017-04-05 14 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上のデータメンバーの属性を含める必要がありますか?派生クラスのデータコントラクトは、基本クラスと孤立して扱われますか?

+0

データを作成して結果をシリアル化するテストコードを書くことをお勧めします。派生クラスに 'type'プロパティが追加されています。 – jdweng

+0

それは良い提案でした。ありがとう。プロパティがシリアル化されていることを確認するために、派生クラスのDataMember属性は必要ないようです。 – luxun

答えて

0

派生クラスのDataMember属性を使用する場合と使用しない場合のシリアル化されたデータを実際に検査するjdwengの提案に従いました。プロパティSomeStringは、SomeStringプロパティのDataMember属性を持たない派生クラスに対してシリアル化されました。

関連する問題