麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

序列化、反序列化的使用

2019-11-17 03:14:25
字體:
供稿:網(wǎng)友
序列化、反序列化的使用

調(diào)用:

using System;namespace ConsoleApp_Serializable{    class PRogram    {        static void Main(string[] args)        {            Person mike = new Person() { Age = 21, Name = "Mike" };            mike.NameChanged += mike_NameChanged;            BinarySerializer.SerializeToFile(mike, @"c:/", "person.txt");            Person p = BinarySerializer.DeserializeFromFile<Person>(@"c:/person.txt");            p.Name = "rose";            Console.WriteLine(p.Name);            Console.WriteLine(p.Age.ToString());            Console.ReadKey();        }        static void mike_NameChanged(object sender, EventArgs e)        {            Console.WriteLine("Name Changed !");        }    }    [Serializable]    class Person    {        private string name;        public int Age { get; set; }        public string Name        {            get { return name; }            set            {                if (NameChanged != null)                {                    NameChanged(this, null);                }                name = value;            }        }        //事件往往是不需要序列化的,反序列化的環(huán)境和序列化的環(huán)境往往不一致,這就失去了將事件序列化的意義。        [field: NonSerialized]        public event EventHandler NameChanged;    }}
工具類:
using System.IO;using System.Runtime.Serialization.Formatters.Binary;namespace ConsoleApp_Serializable{    public class BinarySerializer    {        /// <summary>        /// 將類型序列化為字符串        /// </summary>        public static string Serialize<T>(T t)        {            using (MemoryStream stream = new MemoryStream())            {                BinaryFormatter formatter = new BinaryFormatter();                formatter.Serialize(stream, t);                return System.Text.Encoding.UTF8.GetString(stream.ToArray());            }        }        /// <summary>        /// 將類型序列化為文件        /// </summary>        public static void SerializeToFile<T>(T t, string path, string fullname)        {            if (!Directory.Exists(path))            {                Directory.CreateDirectory(path);            }            string fullPath = string.Format(@"{0}/{1}", path, fullname);            using (FileStream stream = new FileStream(fullPath, FileMode.OpenOrCreate))            {                BinaryFormatter formatter = new BinaryFormatter();                formatter.Serialize(stream, t);                stream.Flush();            }        }        /// <summary>        /// 將字符串反序列化為類型        /// </summary>        public static TResult Deserialize<TResult>(string s) where TResult : class        {            byte[] bs = System.Text.Encoding.UTF8.GetBytes(s);            using (MemoryStream stream = new MemoryStream(bs))            {                BinaryFormatter formatter = new BinaryFormatter();                return formatter.Deserialize(stream) as TResult;            }        }        /// <summary>        /// 將文件反序列化為類型        /// </summary>        public static TResult DeserializeFromFile<TResult>(string path) where TResult : class        {            using (FileStream stream = new FileStream(path, FileMode.Open))            {                BinaryFormatter formatter = new BinaryFormatter();                return formatter.Deserialize(stream) as TResult;            }        }    }}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲草逼视频 | 久久久电影电视剧免费看 | 高清中文字幕在线 | 一区二区三区在线播放视频 | 国产精品99久久久久久久 | 成人短视频在线播放 | 99爱福利视频在线观看 | 午夜视频久久 | 国产视频在线观看免费 | 91精品动漫在线观看 | 免费淫视频 | 在线成人免费网站 | 欧美乱淫 | 99国产精品自拍 | 欧美性成人 | 黄色片网站免费在线观看 | 国产成人高潮免费观看精品 | 久草亚洲视频 | 久久精品中文字幕一区 | 欧美成人免费 | 国产一级一区二区三区 | 久久亚洲线观看视频 | 亚洲一区二区三区高清视频 | 最近国产中文字幕 | 新久草视频 | 国产美女的小嫩bbb图片 | a级毛片免费观看在线播放 日本aaa一级片 | 精品久久久久久久久久久久包黑料 | 成年人免费黄色片 | 九九热这里只有精品8 | 精品偷拍久久 | www.99xxxx.com| 草草视频免费 | 久久男 | 精品久久久久久久久久久久久久 | 视频一区二区三区在线播放 | 伊人网站 | 精品一区二区三区毛片 | 国产一级淫片在线观看 | 日本视频在线免费观看 | 国产va在线观看免费 |