using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
namespace BinarySerializableExample
{
[Serializable]//序列化
//序列化的两个功能是:1:将对象的状态存储在媒体中,便于创建对象的精确的副本
//2.通过值将对象从一个应用程序传送到另一个应用程序
public class AuthUserEntry
{
private int accountId;
private string accountName;
public int AccountId
{
get
{
return accountId;
}
set
{
accountId = value;
}
}
public string AccountName
{
get
{
return accountName;
}
set
{
accountName = value;
}
}
}
class Program
{
static void Main(string[] args)
{
AuthUserEntry ate = new AuthUserEntry();
ate.AccountId = 21;
ate.AccountName = "LiangShuai";
IFormatter formatter = new BinaryFormatter();//序列化到一个二进制的文件.bin中
Stream stream = new FileStream("UserInfo.bin",FileMode.Create,FileAccess.Write,FileShare.None);
formatter.Serialize(stream,ate);
stream.Close();
//反序列化时要首先创建用于读取的流和格式化接口,然后用格式化接口反序列化该对象
stream = new FileStream("UserInfo.bin",FileMode.Open,FileAccess.Read,FileShare.Read);
AuthUserEntry auth = (AuthUserEntry)formatter.Deserialize(stream);
stream.Close();
Console.WriteLine("ID is{0}",auth.AccountId);
Console.WriteLine("Name is {0}",auth.AccountName);
Console.ReadKey();
}
}
}