Link to home
Start Free TrialLog in
Avatar of WannabeNerd
WannabeNerd

asked on

Serialization duplicate tags c#

Concept: :
************
I am getting

<Invoice>
  <T>
    <TEST>
      <Title>1</Title>
    </TEST>
    <TEST>
      <Title>2</Title>
    </TEST>
  </T>
  <NAME>NN</NAME>
</Invoice>

And i want :


<Invoice>
    <TEST>
      <Title>1</Title>
    </TEST>
    <TEST>
      <Title>2</Title>
    </TEST>
  <NAME>NN</NAME>
</Invoice>
private void button1_Click(object sender, EventArgs e)
        {
            XMLTEST.TEST T1 = new TEST();
            T1.Title = "1";

            XMLTEST.TEST T2 = new TEST();
            T2.Title = "2";
            
            XmlTest myXML = new XmlTest();
            myXML.NAME = "NN";
            myXML.TEST=new List<TEST> { T1,T2};            
            TextWriter writer = new StreamWriter(@"C:\test.xml");        

            XmlSerializer serializer = new XmlSerializer(typeof(XmlTest));
            serializer.Serialize(writer, myXML);
            writer.Close();            
        }

                  
    }
    [XmlRoot("Invoice")]
    public class XmlTest
    {
        public string NAME
        { get; set; }
         
        public List<TEST> T;

   
      
    }
    public class TEST
    {
        public string Title
        { get; set; }
    }

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of kris_per
kris_per

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of WannabeNerd
WannabeNerd

ASKER

Great Thanks for the help.

Only one thing :
I want it make it private so that it is serialized accordingly.

If its public it is on top of file which i want.


eg: NAME element before;

<Invoice>
  <NAME>NN</NAME>
    <TEST>
      <Title>1</Title>
    </TEST>
    <TEST>
      <Title>2</Title>
    </TEST>

</Invoice>
Never Mind Found it.
Just have to put

[XmlElement("TEST")] on  top :

private List<TEST> _T;


[XmlElement("TEST")]
public List<TEST> T
{
set....
get ....
}