我有一个抽象基类,向其中添加了一些虚拟属性。我想要的是,在我的派生类中,指定在序列化(和反序列化过程)期间忽略特定的基类属性。正如您在下面看到的,-class 中的Value
-propertyBaseClass
被声明为virtual
属性,并且在DerivedClass
-class 中,使用overrides
-keyword,我选择覆盖基类的 ppty,然后将 -Attribute 放在XmlIgnoreAttribute
它上面。但是,当我测试代码时,我仍然发现Value
ppty 包含在为我的派生类实例生成的 XML 中。定义 ppty 也会发生同样的事情,即使我使用 new 关键字将它隐藏在派生类中,它也会被渲染,然后也将 XMLIgnoreAttribute 应用于它。请问下面的代码有什么问题?
public abstract class BaseClass
{
public virtual String Value { get; set; }
public String Definition { get; set; }
[XmlAttribute("SeparatorCharacter")]
public virtual String SeparatorCharacter { get; set; }
}
public class DerivedClass:BaseClass
{
[XmlIgnore()]
public overrides String Value { get; set; }
[XmlAttribute("FillerCharacter")]
public String FillValue { get; set; }
[XmlIgnore()]
public new String Definition { get; set; }
}