怎么给这个xml文件建立对象,以便使对象和xml文件序列化和反序列化

<?xml version="1.0" encoding="utf-8" ?>
<test>
  <room n="3" q="4"></room>
</test>
-----------------------------------------------------------------------------------------------------
// 定制XML格式
 [XmlRoot("test")]
 public class Clstest
 {
  public Room myRoom;
 }
     
 public class Room
 {
  [XmlAttribute(AttributeName="n")]
  public int iN;
  [XmlAttribute(AttributeName="q")]
  public int iQ;
 }

private void button3_Click(object sender, System.EventArgs e)
{
   //对象串行化输出为XML

 XmlSerializer aXml=new XmlSerializer(typeof(Clstest));
 Clstest cls=new Clstest();
         Room rom=new Room();
 rom.iN=3;
 rom.iQ=4;
 cls.myRoom=rom;
 //create file for writing out
 TextWriter writer = new StreamWriter(@"F:/Order.xml",false, System.Text.Encoding.GetEncoding("gb2312"));
 //serialize data to file

 aXml.Serialize(writer,cls);
 writer.Close();
}
-------------------------------------------------------------------------------------------------------------
又有一个问题
<?xml version="1.0" encoding="utf-8" ?>
<test>
  <room n="3" q="4"></room>
  <room n="5" q="3"></room>
</test>
这里有两个room,那又应该如何建立对象,并且能反序列化为一个对象集合呢?
---------------------------------------------------------------------------------------------------------------
[XmlRoot("test")]
 public class Clstest
 {
  public Room myRoom;
 }

改成:

 [XmlRoot("test")]
 public class Clstest
 {
  public Room[] myRoom;  //用数组
 }

序列化:
         Room rom1=new Room();
 rom1.iN=3;
 rom1.iQ=4;

         Room rom2=new Room();
 rom2.iN=5;
 rom2.iQ=4;
 
         Clstest cls=new Clstest();
         cls.myRoom=new Room[2]{rom1,rom2};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值