XmlSerializer:忽略元素的自定义属性

时间:2019-06-25 15:01:37

标签: c# .net xml

有没有办法让XmlSerializer忽略某些属性而不使用[XmlIgnore]?

我要实现的目标:我想修改通用模型(在许多我不知道的地方使用),以使我的序列化器将忽略某些属性。但是现有的序列化器将以与现在相同的方式工作。

1 个答案:

答案 0 :(得分:0)

是的,您可以使用“ ShouldSerializeMyPropertyName”约定:https://docs.microsoft.com/en-us/dotnet/framework/winforms/controls/defining-default-values-with-the-shouldserialize-and-reset-methods

public class Foo
{
    public string Bar { get; set; }

    public bool ShouldSerializeBar()
    {
        return false;
    }
}

可以将该方法设为virtual并由子类覆盖或根据需要进行驱动。

除此之外,您可以实现IXmlSerializable,但我怀疑这可能比它对您的用例场景的价值更大。