KiddLee

态度决定一切!我博客,留住生活中的精彩
数据加载中……
序列化的知识
序列化是将对象状态转换成可保持或传输的格式。
反序列化是将流转换为对象。
序列化和反序列化的作用是:使数据能够被轻松的存储和传输。
实质上序列化机制是将类的值转化为一个一般的(即连续的)字节流,然后就可以将该流写到磁盘文件或任何其他流化目标上。而要想实际的写出这个流,就要使用那些实现了IFormatter接口的类里的Serialize和Deserialize方法。
在.net框架里提供了这样两个类:
BinaryFormatter:使用二进制格式化程序进行序列化。
SoapFormatter:以xml格式化
XmlSerializer类
DotNet中的序列化方法有三种:XML 序列化、SOAP 序列化和二进制序列化。若是序列化到文件的话,前两者生成的是 XML 文件,二进制序列化生成二进制文件。

posted on 2006-01-13 18:28 KiddLee 阅读(319) 评论(4)  编辑 收藏 网摘 所属分类: 每日所见记录

评论

#1楼 2006-01-15 00:03 努力学习的熊      

楼主说的还是了解的不多,能否有空写出个小例子阿,加深理解:)多谢楼主
    回复  引用  查看    

#2楼[楼主] 2006-01-16 08:45 kid_li      

好的,我这有一个转换二进制的例子,要引用的命名空间有:System.Runtime.Serialization.Formatters.Binary;System.IO

static void Main(string[] args)
{
CreateSerializable();
ReadSerizlizable();
}

/// <summary>
/// 二进制序列化
/// </summary>
public static void CreateSerializable()
{
MyObject obj = new MyObject();
obj.n1 = 1;
obj.n2 = 24;
obj.str = "haha";
System.Runtime.Serialization.IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin",FileMode.Create,FileAccess.Write,FileShare.None);
formatter.Serialize(stream,obj);
stream.Close();
}

/// <summary>
/// 二进制反序列化
/// </summary>
public static void ReadSerizlizable()
{
System.Runtime.Serialization.IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin",FileMode.Open,FileAccess.Read,FileShare.Read);
MyObject obj = (MyObject)formatter.Deserialize(stream);
stream.Close();

Console.Write(obj.n1.ToString() + "\n");
Console.Write(obj.n2.ToString() + "\n");
Console.Write(obj.str + "\n");
Console.Read();
}

[Serializable]
public class MyObject
{
public int n1 = 0;
public int n2 = 0;
public string str = null;
}
    回复  引用  查看    

#3楼 2006-01-16 11:02 努力学习的熊      

不错:)可以用于保护本地的信息配置文件,也算一种加密解密算法
    回复  引用  查看    

#4楼 2006-05-18 14:20 学习者[未注册用户]

楼主 非常感谢你!
终于让我找到了 。
    回复  引用    



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 316896




相关文章:

相关链接: