2017-04-05 72 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属性的派生类中被序列化。