using UnityEngine;
using System.Collections;
using System;
using System.Runtime.Serialization;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
public class Employee{
public int Empld=100;
public string name="陈哲";
[NonSerialized]
public string NoSerializable="No-Serializable";
public Employee(){
}
/*public Employee(SerializationInfo info,StreamingContext ctxt){
Empld = (int)info.GetValue("EmId",typeof(int));
name = (string)info.GetValue("EmName",typeof(string));
}
public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
{
info.AddValue("EmId", Empld);
info.AddValue("EmName", name);
}*/
}
public class SerializableDemo : MonoBehaviour {
public void OtherEmployeeClasTest()
{
Employee em = new Employee();
em.Empld = 10;
em.name = "hello";
em.NoSerializable = "word";
Employee em2 = new Employee();
em2.Empld = 11;
em2.name = "陈哲";
em2.NoSerializable = "你好";
Stream steam = File.Open("c:\\temp3.dat",FileMode.Create);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(steam,em);
bf.Serialize(steam,em2);
steam.Close();
Stream steam2 = File.Open("c:\\temp3.dat",FileMode.Open);
BinaryFormatter bf2 = new BinaryFormatter();
Employee mp = (Employee)bf2.Deserialize(steam2);
Employee mp1 = (Employee)bf2.Deserialize(steam2);
steam2.Close();
Debug.Log("ID : "+mp.Empld);
Debug.Log("Name : "+mp.name);
Debug.Log("NoSerializable : "+mp.NoSerializable);
Debug.Log("ID : "+mp1.Empld);
Debug.Log("Name : "+mp1.name);
Debug.Log("NoSerializable : "+mp1.NoSerializable);
}
// Use this for initialization
void Start () {
OtherEmployeeClasTest();
}
// Update is called once per frame
void Update () {
}
public Stream Steam { get; set; }
}