所以我有一个基类,并且有一个设置为[Serializable]的属性。 在派生类中,我想使该属性[NonSerialized]。
如何做到这一点?
答案 0 :(得分:2)
这将违反OOP。基类已经确定了这个属性是可序列化的这一事实。必须可以将派生类的任何实例替换为基类的实例。这意味着派生类的每个实例都必须具有可序列化的属性。
答案 1 :(得分:0)
您无法替换新属性,但您可以定义一个名为ShouldSerializePropertyName
的属性(其中PropertyName
是您的属性的名称),该属性始终返回false
。这应该覆盖属性上属性的存在。
例如,
public class BaseClass
{
[Serialized]
public string MyProperty { get; set; }
}
public class ChildClass : BaseClass
{
public bool ShouldSerializeMyProperty { get { return false; } }
}