c# 简单序列化
2010-04-21 17:53
281 查看
序列化:是将对象状态转换为可保持或传输的格式的过程,原因有两个,第一是想永久的保存这些数据,以便将来可以重建这些数据。第二是想把数据从一个应用程序域发送到另外一个应用程序域中去。
反序列化:就是把存储介质中的数据重新构建为对象的一个过程。
首先创建一个类MyObject,如以下代码
MyObjectusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SerializeTest
{
[Serializable]
public class MyObject
{
public int n1 = 0;
public int n2 = 0;
public string str = null;
}
}
再创建一个类用来写序列化和反序列化方法以下代码包含2种方式二进制和xml方式。
SerializableCodeusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;//用二进制方式进行序列化要导入的命名空间
using System.Xml.Serialization; //用xml方式进行序列化要导入的命名空间
namespace SerializeTest
{
public class Serializable
{
public void SeriaByBinary()
{
MyObject obj = new MyObject();
obj.n1 = 1;
obj.n2 = 24;
obj.str = "binary is good";
IFormatter formatter = new BinaryFormatter();
Stream stream=new FileStream("c:\\Myfile.bin",FileMode.Create,FileAccess.Write,FileShare.None);
formatter.Serialize(stream,obj);
stream.Close();
}
public MyObject DSeriaByBinary()
{
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("c:\\Myfile.bin", FileMode.Open, FileAccess.Read, FileShare.Read);
MyObject obj=(MyObject)formatter.Deserialize(stream);
stream.Close();
return obj;
}
public void SeriaByXml()
{
MyObject obj = new MyObject();
obj.n1 = 1111;
obj.n2 = 2222;
obj.str = "xml is great";
XmlSerializer xmls = new XmlSerializer(typeof(MyObject));
StreamWriter sw = new StreamWriter("c:\\myobject.xml");
xmls.Serialize(sw,obj);
sw.Close();
}
public MyObject DSeriaByXml()
{
XmlSerializer xmls = new XmlSerializer(typeof(MyObject));
FileStream fs = new FileStream("c:\\myobject.xml",FileMode.Open);
MyObject obj=(MyObject)xmls.Deserialize(fs);
fs.Close();
return obj;
}
}
}
最后创建TEST 窗体事件
哈哈 ,ok 了 试试做一下吧。
反序列化:就是把存储介质中的数据重新构建为对象的一个过程。
首先创建一个类MyObject,如以下代码
MyObjectusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SerializeTest
{
[Serializable]
public class MyObject
{
public int n1 = 0;
public int n2 = 0;
public string str = null;
}
}
再创建一个类用来写序列化和反序列化方法以下代码包含2种方式二进制和xml方式。
SerializableCodeusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;//用二进制方式进行序列化要导入的命名空间
using System.Xml.Serialization; //用xml方式进行序列化要导入的命名空间
namespace SerializeTest
{
public class Serializable
{
public void SeriaByBinary()
{
MyObject obj = new MyObject();
obj.n1 = 1;
obj.n2 = 24;
obj.str = "binary is good";
IFormatter formatter = new BinaryFormatter();
Stream stream=new FileStream("c:\\Myfile.bin",FileMode.Create,FileAccess.Write,FileShare.None);
formatter.Serialize(stream,obj);
stream.Close();
}
public MyObject DSeriaByBinary()
{
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("c:\\Myfile.bin", FileMode.Open, FileAccess.Read, FileShare.Read);
MyObject obj=(MyObject)formatter.Deserialize(stream);
stream.Close();
return obj;
}
public void SeriaByXml()
{
MyObject obj = new MyObject();
obj.n1 = 1111;
obj.n2 = 2222;
obj.str = "xml is great";
XmlSerializer xmls = new XmlSerializer(typeof(MyObject));
StreamWriter sw = new StreamWriter("c:\\myobject.xml");
xmls.Serialize(sw,obj);
sw.Close();
}
public MyObject DSeriaByXml()
{
XmlSerializer xmls = new XmlSerializer(typeof(MyObject));
FileStream fs = new FileStream("c:\\myobject.xml",FileMode.Open);
MyObject obj=(MyObject)xmls.Deserialize(fs);
fs.Close();
return obj;
}
}
}
最后创建TEST 窗体事件
哈哈 ,ok 了 试试做一下吧。
相关文章推荐
- C# Json 序列化与反序列化的简单演示
- C#序列化与反序列化方式简单总结
- c#简单的序列化和反序列化
- C#实现简单的JSON序列化功能代码实例
- C#序列化的最简单办法
- C#中对象,对象集合的简单Xml序列化与反序列化
- C#实现简单的JSON序列化
- C#中对象,对象集合的简单Xml序列化与反序列化(已测试)
- C# XML序列化实例浅(最简单的实例)
- C# .Net 中序列化和反序列化的简单应用
- C# 类用XmlSerializer进行序列化和反序列化进行文件读写的一个简单例子
- C# ArrayList用BinaryFormatter序列化和反序列化进行文件读写的一个简单例子
- 用js解析经后台json序列化后的C#的DateTime类型数据
- C# 简单线程收集
- 有关AE对象的序列化(C#)
- 用C#制作一个最简单的Web Service
- c# XML序列化与反序列化
- [Serializable]在C#中的作用-NET 中的对象序列化
- C# Json数据反序列化为Dictionary并根据关键字获取指定值
- C# 简单发送邮件