Using XmlSerializer to serialize derived classes?

There are three ways of doing this; either you can use XmlInclude against the type, or you can use XmlElement XmlArrayItem against the property. They are all shown below; uncomment the pair you prefer.

There are three ways of doing this; either you can use XmlInclude against the type, or you can use XmlElement/XmlArrayItem against the property. They are all shown below; uncomment the pair you prefer: using System; using System.Collections. Generic; using System.Xml.

Serialization; public class MyWrapper { //2: XmlElement("A", Type = typeof(ChildA)) //2: XmlElement("B", Type = typeof(ChildB)) //3: XmlArrayItem("A", Type = typeof(ChildA)) //3: XmlArrayItem("B", Type = typeof(ChildB)) public List Data { get; set; } } //1: XmlInclude(typeof(ChildA)) //1: XmlInclude(typeof(ChildB)) public abstract class ChildClass { public string ChildProp { get; set; } } public class ChildA : ChildClass { public string AProp { get; set; } } public class ChildB : ChildClass { public string BProp { get; set; } } static class Program { static void Main() { var ser = new XmlSerializer(typeof(MyWrapper)); var obj = new MyWrapper { Data = new List { new ChildA { ChildProp = "abc", AProp = "def"}, new ChildB { ChildProp = "ghi", BProp = "jkl"}} }; ser. Serialize(Console. Out, obj); } }.

You may use XmlIncludeAttribute for this. Or see this post on another way of doing this.

Oct 29 '09 at 12:23 Thank you.Corrected. – elder_george Oct 29 '09 at 12:44 That did it. Thanks.

– Andrea Nagar Nov 1 '09 at 17:47.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions