CSharp學習筆記 (一)序列化類實例

XmlSerializer, DataContractSerializer 和 BinaryFormatter區別與用法分析:http://www.cnblogs.com/nankezhishi/archive/2012/05/12/serializationcompare.html


1. DataContractSerializer :所有類均可實例化,不需要加可序列化關鍵詞

(1)序列化:

            try
            {
                fs = new FileStream(文件名, FileMode.Create);
                ser = new DataContractSerializer(typeof(類名));
                ser.WriteObject(fs, 類實例變量);
                fs.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
(2)反序列化:

            FileStream fs = new FileStream(文件名, FileMode.Open);
            XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(fs, new XmlDictionaryReaderQuotas());
            DataContractSerializer ser = new DataContractSerializer(typeof(類名));
            類名 類實例名 = (類名)ser.ReadObject(reader, true);
            psidentify = new 類名(類實例名);    //array to List
            reader.Close();
            fs.Close();

2. BinaryFormatter:類定義前需加關鍵詞[Serializable],文件小,內容不易解讀

(1)序列化:

                fs = new FileStream(文件名, FileMode.Create);
                try
                {
                    formatter.Serialize(fs, 類實例名);
                }
                catch (SerializationException e)
                {
                    Console.WriteLine("Failed to serialize. Reason: " + e.Message);
                    throw;
                }
                finally
                {
                    fs.Close();
                }

(2)反序列化:

                fs = new FileStream(文件名, FileMode.Open);
                try
                {
                    類實例名 = (類名)formatter.Deserialize(fs);
                }
                catch (SerializationException e)
                {
                    Console.WriteLine("Failed to deserialize. Reason: " + e.Message);
                    throw;
                }
                finally
                {
                    fs.Close();
                }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章