There are many a situations you would have come across when you want to XML serialize an object but since the type is a non – serializable you can’t do it, and you could have done a lot of code for getting the functionality done. There is a much simpler and easy way to get this achieved.
Let me get you a scenario as below
public class HighlightInfo
{
public string Name { get; set; }
public Color ForeColor { get; set; }
}
As you all know System.Drawing.Color is a structure and it is not xml serializable. So whenever you try to serialize “HighlightInfo”, you will get a null tag for “ForeColor”. Below is how you achieve this functionality
public class HighlightInfo
{
public string Name { get; set; }
[XmlIgnore]
public Color ForeColor { get; set; }
[XmlElement("ForeColor")]
public string HtmlForeColor
{
get
{
return ColorTranslator.ToHtml(this.ForeColor);
}
set
{
this.ForeColor = ColorTranslator.FromHtml(value);
}
}
}
Now this is a much easier way to achieve serialization without much trouble. However, this workaround might not work for few situations but it will obviously work for situations where you can transpose a data to another. E.g.) in our scenario we transposed color object to html color and vice versa.
One thought on “Workaround For Non Serializable Types”