如何将属性隐藏到XML序列化的基类中

2 c# xml serialization subclass

让我有一个基类

public class MyClass
{
    private bool _success;
    public bool Success
    {
        get { return _success; }
        set { _success = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

和派生类

public class MySubClass : MyClass
{
    public string str { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

问题:如何序列化MySubClass以使序列化结果中XML没有<Success>标记?

mid*_*pat 7

[XmlIgnore]
public bool Success
{
    get { return _success; }
    set { _success = value; }
}
Run Code Online (Sandbox Code Playgroud)

[XmlIgnore]属性告诉序列化过程忽略此属性.它永远不会被序列化,因此序列化的XML中不会有节点

http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlattributes.xmlignore.aspx

要仅忽略子类中的字段,可以从基类覆盖该属性.

在您的基类中(注意virtual关键字):

public virtual bool Success {get;set;}
Run Code Online (Sandbox Code Playgroud)

在你的子类中

[XmlIgnore]
public override bool Success {get;set;}
Run Code Online (Sandbox Code Playgroud)