如何在某些条件下序列化某些属性

use*_*949 7 .net c# xml-serialization

使用XML序列化序列化类时,如何有条件地输出某些属性.即在某些情况下,它输出此属性,在其他情况下,它不输出.

Fre*_*els 13

您可以创建一个名为的附加属性MyPropertySpecified,该属性返回一个布尔值.
当此属性返回true时,MyProperty将序列化该属性.当它返回false时,它不会被序列化.

此外,您还希望使用the来装饰该属性XmlIgnoreAttribute,以便不对此特定属性进行序列化.

例:

public class Person
{
    public string Name
    {
        get;
        set;
    }

    [XmlIgnore]
    public bool NameSpecified
    {
        get  { return Name != "secret"; }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 在我看来,他希望在某些情况下将此类的某些属性输出(序列化)为xml,而在其他情况下,他不想这样做.我的回答解决了这个问题.是否希望将此属性序列化为属性,或者作为元素可以由其他可用的XMLSerializationAttributes定义.(例如XmlAttribute). (2认同)