打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
解析C# BinaryFormatter实现序列化
C# BinaryFormatter是.NET框架里提供的方法,那么如何使用C# BinaryFormatter类来实现序列化呢?那么本文就向你介绍详细的内容。
AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验
C# BinaryFormatter实现序列化,我们知道在.NET框架里提供了C# BinaryFormatter,那么他是如何实现序列化操作的呢,首先我们来看看C# BinaryFormatter的概念以及作用。
C# BinaryFormatter的介绍:
BinaryFormatter使用二进制格式化程序进行序列化。您只需创建一个要使用的流和格式化程序的实例,然后调用格式化程序的 Serialize 方法。流和要序列化的对象实例作为参数提供给此调用。类中的所有成员变量(甚至标记为 private 的变量)都将被序列化。
C# BinaryFormatter使用实例:
首先我们创建一个类:
[Serializable]
public class MyObject {
public int n1 = 0;
public int n2 = 0;
public String str = null;
}
Serializable属性用来明确表示该类可以被序列化。同样的,我们可以用NonSerializable属性用来明确表示类不能被序列化。接着我们创建一个该类的实例,然后序列化,并存到文件里持久:
MyObject obj = new MyObject();
obj.n1 = 1;
obj.n2 = 24;
obj.str = "一些字符串";
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(
"MyFile.bin", FileMode.Create,
FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
stream.Close();
而将对象还原到它以前的状态也非常容易。首先,创建格式化程序和流以进行读取,然后让格式化程序对对象进行反序列化。
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(
"MyFile.bin", FileMode.Open,
FileAccess.Read, FileShare.Read);
MyObject obj =
(MyObject) formatter.Deserialize(fromStream);
stream.Close();
// 下面是证明
Console.WriteLine("n1: {0}", obj.n1);
Console.WriteLine("n2: {0}", obj.n2);
Console.WriteLine("str: {0}", obj.str);
C# BinaryFormatter实现序列化的详细内容就向你介绍到这里,希望对你了解和学习C# BinaryFormatter类有所帮助。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
.NET基础拾遗(3)字符串、集合和流(下)
谈谈:.Net中的序列化和反序列化
Unity 中使用C#的序列化和反序列化处理游戏数据
ISerializable用法(初级)
C#实现序列化、压缩、解压缩、反序列化对象代码如下:
序列化
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服