c#序列化与反序列化

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization.Formatters;

namespace ISerializa
{
    public partial class _Default : System.Web.UI.Page
    {


        [Serializable]
        public class MyObject
        {
            public int n1 = 0;
            public int n2 = 0;
            public String str = null;
        }


        protected void Button1_Click(object sender, EventArgs e)
        {
            MyObject obj = new MyObject();
            obj.n1 = 1;
            obj.n2 = 24;
            obj.str = "Some String";
           
            IFormatter formatter = new BinaryFormatter();
            //IFormatter formatter = new SoapFormatter();
           
            Stream stream = new FileStream(@"c:\MyFile.bin", FileMode.Create, FileAccess.Write, FileShare.None);
            formatter.Serialize(stream, obj);
            stream.Close();

           
        }

 

        protected void Button2_Click(object sender, EventArgs e)
        {
            IFormatter formatter = new BinaryFormatter();
            Stream stream = new FileStream(@"c:MyFile.bin", FileMode.Open, FileAccess.Read, FileShare.Read);
            MyObject obj = (MyObject)formatter.Deserialize(stream);
            stream.Close();

            // Here's the proof.
            Response.Write(obj.n1);
            Response.Write(obj.n2);
            Response.Write(obj.str);
        }
    }
}

你可能感兴趣的:(反序列化)