对于继承类中的虚拟属性,XmlElement被忽略

时间:2019-05-19 12:52:18

标签: c# xml-serialization

这是我的基类的样子

[Serializable]
public class ExternVariableExtension<T>
{
    #region Properties

    [Description("Gets and sets the value of the selected variable")]
    [Category("Data")]
    public virtual T Value { get; set; }

    #endregion
}

它不是抽象的,因为我实际上正在使用ExternVariableExtension<float>ExternVariableExtension<int>之类的实例,但我也需要ExternVariableExtension<System.Drawing.Color>

我注意到XmlSerializer在尝试序列化System.Drawing.Color值时遇到麻烦。这就是为什么我决定创建一个像这样的新类的原因

public class ExternColorVariableExtension : ExternVariableExtension<Color>
{
    #region Properties

    [XmlElement(Type = typeof(XmlColor))]
    public override Color Value
    {
        get { return base.Value; }
        set { base.Value = value; }
    }

    #endregion
}

这里有一个要序列化的XmlColor类,而不是System.Drawing.Color一个。

但是它不起作用。就像XmlElement(Type = typeof(XmlColor))属性不存在一样。

0 个答案:

没有答案