c# - Formatters for deep nested XML node serialization -


i need serialize c# class xml looking so:

<request>     <session>12345</session>     <page>1</page>     <elements_per_page>999</elements_per_page>     <location>        <zone>aaaa</zone>        <region>bbbb</region>        <coordinates>            <lat>38.680632</lat>            <lon>-96.5001</lon>        </coordinates>     </location> </request>  

what don't want 3 classes (request, location, coordinates), want 1 class changable attributes root of class , added serialization tags create nested xml, @ possible?

let's start bare class:

[xmlroot] class request {     [xmlelement]     public int session { get; set; }     [xmlelement]     public int page { get; set; }     [xmlelement]     public int elements_per_page { get; set; }     [?]     public string zone { get; set; }     [?]     public string region { get; set; }     [?]     public decimal lat { get; set; }     [?]     public decimal lon { get; set; } }  

how map them xml described created? people :)

"is @ possible?"

no. what's problem of having 3 classes? how want make xml-to-static-code linking @ in other way?

moreover, if want dirtly spit out xml, use, example, system.xml.xmldocument , build xml scratch serialize system.xml.serialization.xmlserializer. this:

public string serializerequest(request request) {         xmldocument document = new xmldocument();          xmlelement requestelement = document.createelement("request");          xmlelement sessionelement = document.createelement("session");         sessionelement.innertext = request.session.tostring(cultureinfo.invariantculture);          xmlelement pageelement = document.createelement("page");         pageelement.innertext = request.page.tostring(cultureinfo.invariantculture);          xmlelement elementsperpageelement = document.createelement("elements_per_page");         elementsperpageelement.innertext = request.elements_per_page.tostring(cultureinfo.invariantculture);          xmlelement zoneelement = document.createelement("zone");         zoneelement.innertext = request.zone;         xmlelement regionelement = document.createelement("region");         regionelement.innertext = request.region;          xmlelement latelement = document.createelement("lat");         latelement.innertext = request.lat.tostring(cultureinfo.invariantculture);         xmlelement lonelement = document.createelement("lon");         lonelement.innertext = request.lon.tostring(cultureinfo.invariantculture);         xmlelement coordinateselement = document.createelement("coordinate");         coordinateselement.appendchild(latelement);         coordinateselement.appendchild(lonelement);          xmlelement locationelement = document.createelement("location");         locationelement.appendchild(zoneelement);         locationelement.appendchild(regionelement);         locationelement.appendchild(coordinateselement);          requestelement.appendchild(sessionelement);         requestelement.appendchild(pageelement);         requestelement.appendchild(elementsperpageelement);         requestelement.appendchild(locationelement);          document.appendchild(requestelement);          string serializedobj = document.outerxml;         return serializedobj; } 

Comments

Popular posts from this blog

Unable to remove the www from url on https using .htaccess -