举个例子来说 需要跨语言平台传输数据,不用序列化(二进制流或xml, json文本等等)根本无法实现。
序列化就是将一个对象直接变成二进制数据,举例说明
创建一个Person类
[Serializable]
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public char Gender { get; set; }
}
在main函数中:
#region ---序列化---
////初始化期
//Person p = new Person() { Name = "韩迎龙", Age = 23, Gender = '男' };
////保存文件到硬盘上面
//using (FileStream file = new FileStream("person.dat", FileMode.Create, FileAccess.Write))
//{
// BinaryFormatter format = new BinaryFormatter();
// //这里有多态的效果
// format.Serialize(file, p);
//}
//Console.WriteLine("OK");
//Console.ReadKey();
#endregion
#region ---反序列化---
//反序列化与序列化类似,只是步骤有点不同
Person p = null;
using (FileStream file = new FileStream("person.dat", FileMode.Open, FileAccess.Read))
{
BinaryFormatter formate = new BinaryFormatter();
p = (Person)formate.Deserialize(file);
}
Console.WriteLine(p.Name + p.Age + p.Gender);
#endregion