序列化对象为XML

本文深入探讨了XML序列化与反序列化的基本原理及应用,通过实例展示了如何自定义元素名称和属性,以及如何使用XMLSerializer进行序列化和反序列化操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值