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
Post a Comment