这是我的基类的样子
[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))
属性不存在一样。