usingSystem;
|
002
|
usingSystem.Linq;
|
003
|
usingSystem.Xml.Serialization;
|
004
|
usingSystem.IO;
|
005
|
usingSystem.Collections.Generic;
|
006
|
007
|
namespaceXMLSerializationDeserialization
|
008
|
{
|
009
|
[XmlRoot("Root")]//Custom
the root element
|
010
|
publicclassAddressDetails
|
011
|
{
|
012
|
//[XmlElement("Number")]
//custom the tag name
|
013
|
[XmlAttribute("HouseNo")]//Have
"HouseNo" as XML attribute instead of the normal XMLElement
|
014
|
publicintHouseNo
{get;set;
}
|
015
|
//
[XmlElement("Street")]
|
016
|
[XmlText]//Adds
StreetName as InnerText to the tag "AddressDetails"
|
017
|
publicstringStreetName
{get;set;
}
|
018
|
//[XmlElement("CityName")]
|
019
|
[XmlIgnore]//Ignore
it
|
020
|
publicstringCity
{get;set;
}
|
021
|
privatestringPoAddress
{get;set;}
|
022
|
publicAddressDetails()
|
023
|
{
|
024
|
StreetName
="DanLing";
|
025
|
City
="Beijing";
|
026
|
HouseNo
= 3;
|
027
|
}
|
028
|
}
|
029
|
030
|
publicclassPersonalDetails
|
031
|
{
|
032
|
publicstringName
{get;set;
}
|
033
|
publicintAge
{get;set;
}
|
034
|
publicAddressDetails
address;
|
035
|
publicPersonalDetails()
|
036
|
{
|
037
|
Name
="Qiaolin";
|
038
|
Age
= 34;
|
039
|
address
=newAddressDetails();
|
040
|
}
|
041
|
}
|
042
|
043
|
044
|
classProgram
|
045
|
{
|
046
|
staticpublicvoidSerialize(AddressDetails
details)
|
047
|
{
|
048
|
XmlSerializer
serializer =newXmlSerializer(typeof(AddressDetails));
|
049
|
using(TextWriter
writer =newStreamWriter(@"d:\AddressXml.xml"))
|
050
|
{
|
051
|
serializer.Serialize(writer,
details);
|
052
|
}
|
053
|
}
|
054
|
055
|
staticpublicvoidSerialize(PersonalDetails
details)
|
056
|
{
|
057
|
XmlSerializer
serializer =newXmlSerializer(typeof(PersonalDetails));
|
058
|
using(TextWriter
writer =newStreamWriter(@"d:\PersonInfoXml.xml"))
|
059
|
{
|
060
|
serializer.Serialize(writer,
details);
|
061
|
}
|
062
|
}
|
063
|
064
|
staticpublicvoidSerialize(List<AddressDetails>
details)
|
065
|
{
|
066
|
XmlSerializer
serializer =newXmlSerializer(typeof(List<AddressDetails>));
|
067
|
using(TextWriter
writer =newStreamWriter(@"d:\AddressXml.xml"))
|
068
|
{
|
069
|
serializer.Serialize(writer,
details);
|
070
|
}
|
071
|
}
|
072
|
073
|
074
|
staticvoidMain(string[]
args)
|
075
|
{
|
076
|
//AddressDetails
details = new AddressDetails();
|
077
|
PersonalDetails
personInfo =newPersonalDetails();
|
078
|
079
|
List<AddressDetails>
addrLists=newList<AddressDetails>();
|
080
|
AddressDetails
addList1 =newAddressDetails();
|
081
|
addList1.HouseNo
= 4;
|
082
|
addList1.StreetName
="Rohini";
|
083
|
addList1.City
="Delhi";
|
084
|
085
|
AddressDetails
addList2 =newAddressDetails();
|
086
|
addList2.HouseNo
= 4;
|
087
|
addList2.StreetName
="Rohini";
|
088
|
addList2.City
="Delhi";
|
089
|
090
|
AddressDetails
addList3 =newAddressDetails();
|
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
|
}
|
本文深入探讨了XML序列化与反序列化的基本原理及应用,通过实例展示了如何自定义元素名称和属性,以及如何使用XMLSerializer进行序列化和反序列化操作。
112

被折叠的 条评论
为什么被折叠?



