zoukankan      html  css  js  c++  java
  • 序列化和反序列化

    class Program
    {

    public static void Main()
    {

    // 创建一个新的测试对象

    TestSimpleObject obj = new TestSimpleObject();

    Console.WriteLine("Before serialization the object contains: ");

    obj.Print();

    // 创建一个文件"data.xml"并将对象序列化后存储在其中

    Stream stream = File.Open("data.xml", FileMode.Create);

    SoapFormatter formatter = new SoapFormatter();

    //BinaryFormatter formatter = new BinaryFormatter();

    formatter.Serialize(stream, obj);

    stream.Close();

    // 将对象置空

    obj = null;

    // 打开文件"data.xml"并进行反序列化得到对象

    stream = File.Open("data.xml", FileMode.Open);

    formatter = new SoapFormatter();

    //formatter = new BinaryFormatter();

    obj = (TestSimpleObject)formatter.Deserialize(stream);

    stream.Close();

    Console.WriteLine("");

    Console.WriteLine("After deserialization the object contains: ");

    obj.Print();

    }

    }

    // 一个要被序列化的测试对象的类

    [Serializable()]

    public class TestSimpleObject
    {

    public int member1;

    public string member2;

    public string member3;

    public double member4;

    // 标记该字段为不可被序列化的

    [NonSerialized()]
    public string member5;

    public TestSimpleObject()
    {

    member1 = 11;

    member2 = "hello";

    member3 = "hello";

    member4 = 3.14159265;

    member5 = "hello world!";

    }

    public void Print()
    {

    Console.WriteLine("member1 = '{0}'", member1);

    Console.WriteLine("member2 = '{0}'", member2);

    Console.WriteLine("member3 = '{0}'", member3);

    Console.WriteLine("member4 = '{0}'", member4);

    Console.WriteLine("member5 = '{0}'", member5);

    }



    }


  • 相关阅读:
    python打包exe pyinstaller 简单使用
    加群请回答两个问题,谢谢合作!
    8080_32位汇编-通用寄存器
    学习8086汇编的准备
    HelloWorld生命周期
    我为什么要学习《深入理解计算机系统》这本书?
    MySQL_1.0
    C++命名空间的玩法
    Linux的 7个运行级别
    Linux基础命令2.0
  • 原文地址:https://www.cnblogs.com/wrnsweet/p/6178949.html
Copyright © 2011-2022 走看看