I am creating an application that requires converting a C # object to XML. I use the XML Serializer class to achieve this
If you use an XML serializer to do this work, then why the âXMLâ field into which you are inserting manually encoded XML code? It sounds like you want something more like this (using your class name, although it does look like spelling):
public class Anwer { public int ID { get; set; } public int Answer { get; set; } } .. List<Anwer> answerList = new List<Anwer>() { new Anwer { ID=1, Answer=2 }, new Anwer { ID=2, Answer=3 }, }; XmlSerializer x = new XmlSerializer(answerList.GetType()); x.Serialize(Console.Out, answerList); .. <ArrayOfAnwer ...> <Anwer> <ID>1</ID> <Answer>2</Answer> </Anwer> ...
Or, if you really want / need a response element that can be embedded in an XML element for any reason, you can change your Anwer object to reflect this structure (as Oleg Kalenchuk suggests), or generate XML yourself, rather than use serializer:
XElement xml = new XElement("AnwerList", from anwer in anwerList select new XElement("Anwer", new XElement("ID", anwer.ID), new XElement("XML", new XElement("Answer", anwer.Answer) ) ) ); Console.Out.WriteLine(xml); <AnwerList> <Anwer> <ID>1</ID> <XML> <Answer>2</Answer> </XML> </Anwer> ...
I prefer the latter anyway, because it gives you more control.
source share