using System;
|
002
|
using System.Linq;
|
003
|
using System.Xml.Serialization;
|
004
|
using System.IO;
|
005
|
using System.Collections.Generic;
|
006
|
007
|
namespace XMLSerializationDeserialization
|
008
|
{
|
009
|
[XmlRoot( "Root" )] //Custom
the root element
|
010
|
public class AddressDetails
|
011
|
{
|
012
|
//[XmlElement("Number")]
//custom the tag name
|
013
|
[XmlAttribute( "HouseNo" )] //Have
"HouseNo" as XML attribute instead of the normal XMLElement
|
014
|
public int HouseNo
{ get ; set ;
}
|
015
|
//
[XmlElement("Street")]
|
016
|
[XmlText] //Adds
StreetName as InnerText to the tag "AddressDetails"
|
017
|
public string StreetName
{ get ; set ;
}
|
018
|
//[XmlElement("CityName")]
|
019
|
[XmlIgnore] //Ignore
it
|
020
|
public string City
{ get ; set ;
}
|
021
|
private string PoAddress
{ get ; set ;}
|
022
|
public AddressDetails()
|
023
|
{
|
024
|
StreetName
= "DanLing" ;
|
025
|
City
= "Beijing" ;
|
026
|
HouseNo
= 3;
|
027
|
}
|
028
|
}
|
029
|
030
|
public class PersonalDetails
|
031
|
{
|
032
|
public string Name
{ get ; set ;
}
|
033
|
public int Age
{ get ; set ;
}
|
034
|
public AddressDetails
address;
|
035
|
public PersonalDetails()
|
036
|
{
|
037
|
Name
= "Qiaolin" ;
|
038
|
Age
= 34;
|
039
|
address
= new AddressDetails();
|
040
|
}
|
041
|
}
|
042
|
043
|
044
|
class Program
|
045
|
{
|
046
|
static public void Serialize(AddressDetails
details)
|
047
|
{
|
048
|
XmlSerializer
serializer = new XmlSerializer( typeof (AddressDetails));
|
049
|
using (TextWriter
writer = new StreamWriter( @"d:\AddressXml.xml" ))
|
050
|
{
|
051
|
serializer.Serialize(writer,
details);
|
052
|
}
|
053
|
}
|
054
|
055
|
static public void Serialize(PersonalDetails
details)
|
056
|
{
|
057
|
XmlSerializer
serializer = new XmlSerializer( typeof (PersonalDetails));
|
058
|
using (TextWriter
writer = new StreamWriter( @"d:\PersonInfoXml.xml" ))
|
059
|
{
|
060
|
serializer.Serialize(writer,
details);
|
061
|
}
|
062
|
}
|
063
|
064
|
static public void Serialize(List<AddressDetails>
details)
|
065
|
{
|
066
|
XmlSerializer
serializer = new XmlSerializer( typeof (List<AddressDetails>));
|
067
|
using (TextWriter
writer = new StreamWriter( @"d:\AddressXml.xml" ))
|
068
|
{
|
069
|
serializer.Serialize(writer,
details);
|
070
|
}
|
071
|
}
|
072
|
073
|
074
|
static void Main( string []
args)
|
075
|
{
|
076
|
//AddressDetails
details = new AddressDetails();
|
077
|
PersonalDetails
personInfo = new PersonalDetails();
|
078
|
079
|
List<AddressDetails>
addrLists= new List<AddressDetails>();
|
080
|
AddressDetails
addList1 = new AddressDetails();
|
081
|
addList1.HouseNo
= 4;
|
082
|
addList1.StreetName
= "Rohini" ;
|
083
|
addList1.City
= "Delhi" ;
|
084
|
085
|
AddressDetails
addList2 = new AddressDetails();
|
086
|
addList2.HouseNo
= 4;
|
087
|
addList2.StreetName
= "Rohini" ;
|
088
|
addList2.City
= "Delhi" ;
|
089
|
090
|
AddressDetails
addList3 = new AddressDetails();
|
091
|
addList3.HouseNo
= 4;
|
092
|
addList3.StreetName
= "Rohini" ;
|
093
|
addList3.City
= "Delhi" ;
|
094
|
095
|
addrLists.Add(addList1);
|
096
|
addrLists.Add(addList2);
|
097
|
addrLists.Add(addList3);
|
098
|
Serialize(addrLists);
|
099
|
Serialize(personInfo);
|
100
|
}
|
101
|
}
|
102
|
}
|