简体   繁体   English

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

[英]XmlSerializer: Custom attribute for ignore element

Is there way to XmlSerializer ignore some properties without using [XmlIgnore]? 有没有办法让XmlSerializer在不使用[XmlIgnore]的情况下忽略某些属性?

What i want to achieve: I want to modify common models (used in many places I don't know) way that my serializer will ignore some properties; 我想要实现的目标:我想修改通用模型(在许多我不知道的地方使用),以使我的序列化器将忽略某些属性; but existing serializers will work the same way as now. 但是现有的序列化器将以与现在相同的方式工作。

Yes, you can use the "ShouldSerializeMyPropertyName" convention: https://docs.microsoft.com/en-us/dotnet/framework/winforms/controls/defining-default-values-with-the-shouldserialize-and-reset-methods 是的,您可以使用“ ShouldSerializeMyPropertyName”约定: https ://docs.microsoft.com/zh-cn/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;
    }
}

That method can be made virtual and overridden by subclasses or driven as needed. 可以将该方法设置为virtual方法,并由子类覆盖,也可以根据需要进行驱动。

Beyond that, you can implement IXmlSerializable but I suspect this could be more trouble than what its worth for your use case scenario. 除此之外,您可以实现IXmlSerializable但我怀疑这可能比它对您的用例场景的价值更大。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM