C# 序列化和反序列化

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; }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值