📄 sample13.cs
字号:
namespace apibook
{
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
public class TestSerializedAttribute
{
public static void Main()
{
TestSerializedAttributeObject testObj = new TestSerializedAttributeObject();
Console.WriteLine("创建的对象在序列化前包含的成员内容如下:");
testObj.PrintMember();
//Opens a file and serializes the object into it in binary format.
Stream stream = File.Open("testSerialize.txt", FileMode.Create);
//在流里打开一个文件
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, testObj);
//将该对象成员内容以2进制格式保存在打开的文件
stream.Close();
//将流关闭.
testObj = null;
//将该对象的引用设为空引用
//Opens file "data.xml" and deserializes the object from it.
stream = File.Open("testSerialize.txt", FileMode.Open);
//在流里打开刚才序列化对象的文件
formatter = new BinaryFormatter();
testObj = (TestSerializedAttributeObject)formatter.Deserialize(stream);
//从文件里将存放的2进制内容重新读到一个对象里,再将原来的引用指向该对象
stream.Close();
Console.WriteLine("经过序列化后该对象的内容如下: ");
testObj.PrintMember();
}
}
[Serializable()]
public class TestSerializedAttributeObject
{
public int mem1;
public string mem2;
public char mem3;
public double mem4;
[NonSerialized()] public string memNonSer;
//注意该字符串声明为不被序列化的
public TestSerializedAttributeObject()
{
mem1 = 8;
mem2 = "被序列化的";
mem3 = 'c';
mem4 = 8.888888;
memNonSer = "不被序列化的";
}
public void PrintMember()
{
Console.WriteLine("mem1 ="+ mem1);
Console.WriteLine("mem2 = "+mem2);
Console.WriteLine("mem3 = "+ mem3);
Console.WriteLine("mem4 = "+ mem4);
Console.WriteLine("memNonSer ="+memNonSer);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -