c# - 如何将属性隐藏到用于 XML 序列化的基类中

标签 c# xml serialization subclass

让我有一个基类

public class MyClass
{
    private bool _success;
    public bool Success
    {
        get { return _success; }
        set { _success = value; }
    }
}

和派生类

public class MySubClass : MyClass
{
    public string str { get; set; }
}

问题:如何序列化MySubClassXML这样就没有 <Success>序列化结果中的标签?

最佳答案

[XmlIgnore]
public bool Success
{
    get { return _success; }
    set { _success = value; }
}

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

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

要仅在您的子类中忽略该字段,您可以覆盖基类中的属性。

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

public virtual bool Success {get;set;}

在你的子类中

[XmlIgnore]
public override bool Success {get;set;}

关于c# - 如何将属性隐藏到用于 XML 序列化的基类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23263966/

相关文章:

java - 如何停止 JAXB 限定属性

java - 无法在 logback.xml 中应用 <pattern>

java - 如何从嵌套 XML 子元素中删除命名空间值?

c# - 为什么我不能从 GridViewRow PresenterBase 派生?

c# - 在 Winforms 中捕获 WinKey+D 键序列

c# - 将 UWP 应用程序最小化到系统托盘

c# - ASP.NET db.savechange System.Data.Entity.Infrastruct.DbUpdateException

php - 在 PHP 的 SimpleXML 中删除具有特定属性的子项

Silverlight 网络服务调用在 Studio 中工作,但从网站运行时失败

java - 从子类/子类/继承类获取基类/父类/父类(super class)