给出以下代码片段......
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
?感谢。
答案 0 :(得分:0)
实际上,这取决于你想要对这些属性做出的用法。我遇到了一个场景,我使用这些属性进行序列化 ProtoBuf 。在重写的属性上没有DataMember属性的情况下,一切正常。然后我们决定也支持使用 JSON 格式进行序列化。然后该属性是强制性的,并且如同所述的hawkee一样,它不会影响现有的行为。