How to tell XmlSerializer to serialize properties with [DefautValue(…)] always?

后端 未结 4 1552
孤街浪徒
孤街浪徒 2020-12-20 11:42

I am using DefaultValue attribute for the proper PropertyGrid behavior (it shows values different from default in bold). Now if I want to serialize

4条回答
  •  一个人的身影
    2020-12-20 12:25

    You could use two properties:

    // For property grid only:
    [Category(CategoryAnalyse)]
    [TypeConverter(typeof(ConverterBoolOnOff))]
    [DefaultValue(false)]
    [XmlIgnore]
    public bool AllowNegative
    {
        get { return _allowNegative; }
        set
        {
            _allowNegative = value;
            ConfigBase.OnConfigChanged();
        }
    }
    
    // For serialization:
    [Browsable(false)]
    [EditorBrowsable(EditorBrowsableState.Never)]
    [TypeConverter(typeof(ConverterBoolOnOff))]
    [XmlElement("AllowNegative")]
    public bool AllowNegative_XML
    {
        get { return _allowNegative; }
        set
        {
            _allowNegative = value;
            ConfigBase.OnConfigChanged();
        }
    }
    

提交回复
热议问题