Вот так выглядит мой базовый класс
[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
one.
Но это не работает. Он действует так, как будто атрибут XmlElement(Type = typeof(XmlColor))
не существует.