c# 中的serializableAttribute

using UnityEngine;
using System.Collections;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

// A test object that needs to be serialized.
[System.Serializable]        
public class TestSimpleObject  {
    
    public int member1;
    public string member2;
    public string member3;
    public double member4;
    
    // A field that is not serialized.
    [System.NonSerialized] public string member5; 
    
    public TestSimpleObject() {
        
        member1 = 11;
        member2 = "hello";
        member3 = "hello";
        member4 = 3.14159265;
        member5 = "hello world!";
    }
    
    
    public void Print() {
        
        Debug.Log("member1 = " + member1);
        Debug.Log("member2 = " + member2);
        Debug.Log("member3 = " + member3);
        Debug.Log("member4 = " + member4);
        Debug.Log("member5 = " + member5);
    }
}

[ExecuteInEditMode]
public class TestSerializerable : MonoBehaviour 
{

    // Use this for initialization
    void Start () 
    {
        TestSerializerable.Main();
    }

    public static void Main()  
    {
            
            //Creates a new TestSimpleObject object.
            TestSimpleObject obj = new TestSimpleObject();
            
            Debug.Log("Before serialization the object contains: ");
            obj.Print();
            
            //Opens a file and serializes the object into it in binary format.
            Stream stream = File.Open("data.xml", FileMode.Create);
            //SoapFormatter formatter = new SoapFormatter();
            
            BinaryFormatter formatter = new BinaryFormatter();
            
            formatter.Serialize(stream, obj);
            stream.Close();
            
            //Empties obj.
            obj = null;
            
            //Opens file "data.xml" and deserializes the object from it.
            stream = File.Open("data.xml", FileMode.Open);
            //formatter = new SoapFormatter();
            
            formatter = new BinaryFormatter();
            
            obj = (TestSimpleObject)formatter.Deserialize(stream);
            stream.Close();
            
            Debug.Log("After deserialization the object contains: ");
            obj.Print();
    }
}

以上代码 在unity环境下运行

 

转载于:https://www.cnblogs.com/bysdtd/p/4952516.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值