0

鉴于以下代码片段...

public MyBaseClass
{
    ...
    [DataMember]
    public virtual Rectangle MyRectangle
    {
        get;
        set;
    }
    ....
}

public MyDerivedClass : MyBaseClass
{
    ...
    [DataMember] // Is that necessary?
    public override Rectangle MyRectangle
    {
        get { return base.MyRectangle; }
        set {
            ...
            base.MyRectangle = value;
        }
    }
    ....
}

...我想知道是否也[DataMember]应声明为MyDerivedClass.MyRectangle?谢谢。

4

1 回答 1

0

实际上,这取决于您对这些属性的用途。我遇到了一个场景,我使用这些属性与ProtoBuf进行序列化。没有覆盖属性上的 DataMember 属性,一切正常。然后我们决定也支持JSON格式的序列化。然后该属性是强制性的,正如 hawkee 所说,它不会影响现有行为。

于 2017-02-21T15:42:30.027 回答