I have a table that must be serialize.
its my class, i add table values to it
public class NewCVXml
{
[XmlArray]
[XmlArrayItem(ElementName = "Name")]
public List<string> FieldFirst { get; set; }
[XmlArray]
[XmlArrayItem(ElementName = "Value")]
public List<string> FieldSecond { get; set; }
[XmlArray]
[XmlArrayItem(ElementName = "State")]
public List<string> FieldThird { get; set; }
}
this is value came from ajax (Request.Form)
{field1=name1&field1=name2&field1=name3&field2=value1&field2=value2&field2=value3&field3=Private&field3=Public&field3=Public}
and this is my c# function that called by ajax (for posting)
string xmlText;
NewCVXml newCv = new NewCVXml();
newCv.FieldFirst = Request.Form.GetValues(0).ToList();
newCv.FieldSecond = Request.Form.GetValues(1).ToList();
newCv.FieldThird = Request.Form.GetValues(2).ToList();
try
{
XmlSerializer serializer = new XmlSerializer(newCv.GetType());
MemoryStream ms = new MemoryStream();
using (XmlTextWriter writer = new XmlTextWriter(ms, Encoding.UTF8) { Formatting = Formatting.Indented })
{
serializer.Serialize(writer, newCv);
ms = (MemoryStream)writer.BaseStream;
xmlText = new UTF8Encoding().GetString(ms.ToArray());
ms.Dispose();
return Content(xmlText);
}
}
catch (Exception e)
{
return Content( "Hata: " + e.Message);
}
and this xml creates
<?xml version="1.0" encoding="utf-8"?>
<NewCVXml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FieldFirst>
<Name>name1</Name>
<Name>name2</Name>
<Name>name3</Name>
</FieldFirst>
<FieldSecond>
<Value>value1</Value>
<Value>value2</Value>
<Value>value3</Value>
</FieldSecond>
<FieldThird>
<State>Private</State>
<State>Public</State>
<State>Public</State>
</FieldThird>
</NewCVXml>

But I want something like that xml
<?xml version="1.0" encoding="utf-8"?>
<NewCVXml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Rows>
<name1 state="Private">value1</name1>
<name2 state="Public">value2</name2>
<name3 state="Public">value3</name3>
</Rows>
</NewCVXml>
I dont know how I can create like that xml. I cannot use a class for each row. Because cells of rows are changeable. I mean, it can be name1 or XXX or YYY or ... it depens on user. Everything is dynamic then I think that I need to use a string list and create tagname from list values.