XML与Object序列化
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml.Serialization;
using System.IO;
using System.Collections;
namespace Serialization
{
public partial class XmlSerializerDemo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//this.LoadData();
this.MyArrayList();
}
}
/// <summary>
/// 加载数据
/// </summary>
private void LoadData()
{
List<Person> people = new List<Person>();
people.Add(new Person("0001", "张三"));
people.Add(new Person("0002", "李四"));
XmlSerializer s = new XmlSerializer(typeof(List<Person>));
TextWriter w = new StreamWriter(Server.MapPath("~/person.xml"));
s.Serialize(w, people);
w.Close();
//XmlSerializer s = new XmlSerializer(typeof(Person));
//TextWriter w = new StreamWriter(Server.MapPath("~/person1.xml"));
//s.Serialize(w, p);
//w.Close();
TextReader r = new StreamReader(Server.MapPath("~/person.xml"));
List<Person> listPerson = s.Deserialize(r) as List<Person>;
r.Close();
Response.Write(listPerson[1].Name);
}
/// <summary>
/// 情况二
/// </summary>
public void MyArrayList()
{
ArrayList people = new ArrayList();
people.Add(new Person("001", "王雪"));
people.Add(new Person("002", "茼桐"));
XmlSerializer s = new XmlSerializer(typeof(ArrayList), new Type[] { typeof(Person) });
TextWriter w = new StreamWriter(Server.MapPath("~/p.xml"));
s.Serialize(w, people);
w.Close();
TextReader r = new StreamReader(Server.MapPath("~/p.xml"));
ArrayList array = s.Deserialize(r) as ArrayList;
foreach (Person al in array)
{
Response.Write("序号为:" + al.Id + " ");
Response.Write("姓名为:"+al.Name+"<br/>");
}
}
}
public class Person
{
public Person() { }
public Person(string id, string name)
{
Id = id;
Name = name;
}
public string Id { get; set; }
public string Name { get; set; }
}
}
本文介绍了一个使用C#实现的XML序列化示例,包括如何将Person对象列表序列化到XML文件中,以及如何从XML文件中反序列化数据。演示了两种情况:一种是对Person类的List进行操作;另一种是对包含Person对象的ArrayList进行操作。
119

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



