XML序列化和反序列化
来源:互联网 发布:阿里云备案核验单填写 编辑:程序博客网 时间:2024/04/25 07:06
http://www.cnblogs.com/lhking/archive/2008/11/29/1344023.html
XML序列化和反序列化
注释很详细,一看就知道,简单易解。
using System;
namespace SerDser
{
[Serializable] //表示此类可以被序列化
public class Course
{
public string Name;
public string Description;
/// <summary>
/// 必须要有一个无参的构造器
/// </summary>
public Course()
{ }
public Course(string name, string description)
{
Name = name;
Description = description;
}
}
}
using System;
namespace SerDser
{
[Serializable] //表示此类可以被序列化,能被序列化就可以被反序列化
public class Person
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
public string Sex;
public int Age = 31;
public Course[] Courses;
public Person() { } //无参构造器
public Person(string Name)
{
this.name = Name;
Sex = "男";
}
}
}
using System;
using System.IO;//对文件操作
using System.Xml.Serialization; //引入序列化所用到的命名空间
namespace SerDser
{
public class Program
{
static void Main(string[] args)
{
Program p = new Program();
p.Serialize();
p.Deserialize();
}
public void Serialize() //序列化Person类
{
Console.WriteLine("开始序列化......");
Person c = new Person("lhking");
c.Courses = new Course[2];
c.Courses[0] = new Course("英语","交流工具");
c.Courses[1] = new Course("数学","自然科学");
XmlSerializer xs = new XmlSerializer(typeof(Person));
Stream stream = new FileStream("c://sedes.xml", FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
xs.Serialize(stream, c);
stream.Close();
Stream stream1 = new FileStream("c://sedes.txt", FileMode.Create, FileAccess.Write, FileShare.None);
xs.Serialize(stream1, c);
stream1.Close();
//两个文件的内容是一样的。
Console.WriteLine();
Console.WriteLine("序列化完毕");
System.Diagnostics.Process.Start(@"c:/sedes.xml");
}
public void Deserialize() //反序列化Person类
{
Console.WriteLine("开始反序列化......");
Console.WriteLine("反序列化完毕,Output.....");
System.Threading.Thread.Sleep(2000); //线程暂定2秒
XmlSerializer xs = new XmlSerializer(typeof(Person));
Stream stream = new FileStream("c://sedes.xml", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Person p = (Person)xs.Deserialize(stream);
Console.WriteLine(p.Name);
Console.WriteLine(p.Age);
Console.WriteLine(p.Courses.Length);
Console.WriteLine(p.Courses[0].Name);
Console.WriteLine(p.Courses[0].Description);
Console.WriteLine(p.Courses[1].Name);
Console.WriteLine(p.Courses[1].Description);
Console.Read();
}
}
}
- XML序列化和反序列化
- XML序列化和反序列化
- Xml序列化和反序列化
- XML序列化和反序列化
- xml序列化和反序列化
- XML序列化和反序列化
- XML序列化和反序列化
- Xml序列化和反序列化
- 二进制流序列化(反序列化)和XML序列化(反序列化)
- XML和实体序列化和反序列化
- 序列和反序列化
- 序列和反序列化
- C#中XML序列化和反序列化初探
- .NET对象的XML序列化和反序列化
- .NET对象的XML序列化和反序列化
- .NET对象的XML序列化和反序列化
- xml的序列化和反序列化
- XML序列化和反序列化集合示例
- ASP.NET MVC框架(第四部分): 处理表单编辑和提交场景
- NHibernate之 inverse
- 转换字符串为json对象的方法
- 深入浅出JSON
- 解决eboot无法下载NK.bin的问题
- XML序列化和反序列化
- 应用 Rational 工具简化基于 J2EE 的项目
- TCppWebBrowser如何调用navigate
- get part of chinese
- PELCO-D/P协议
- MTK编译过程
- checkbox传值
- 根据表中记录的变化情况自动维护作业
- [转]学习PIC系列单片机的进来准没错!!(共18篇)