将基类的属性更改为[NonSerialized]
本文关键字:NonSerialized 基类 属性 | 更新日期: 2023-09-27 17:58:28
所以我有一个基类,并且有一个属性设置为[Serializable]。在派生类中,我希望使该属性为[NonSerialized]。
如何做到这一点?
这将违反OOP。基类已经确定了这个属性是可序列化的。必须可以用派生类的任何实例替换基类的实例。这意味着派生类的每个实例都必须具有可序列化的属性。
不能替换新属性,但可以定义一个名为ShouldSerializePropertyName
的属性(其中PropertyName
是属性的名称),该属性始终返回false
。这应该覆盖属性上是否存在属性。
例如,
public class BaseClass
{
[Serialized]
public string MyProperty { get; set; }
}
public class ChildClass : BaseClass
{
public bool ShouldSerializeMyProperty { get { return false; } }
}