⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sample13.cs

📁 C#函数手册
💻 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 + -