文章出處

XML序列化與反序列化

1、將一個類轉化為XML文件

        /// <summary>
        /// 對象序列化成XML文件
        /// </summary>
        /// <param name="type">對象類型</param>
        /// <param name="obj">對象</param>
        /// <param name="fileName">序列化的XML文件路徑</param>
        public static void Serialize(Type type, object obj, string fileName)
        {
            if (File.Exists(fileName))
                File.Delete(fileName);
            //創建流
            using (var fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
                //創建XML序列化器,需要指定對象的類型
                var serializer = new XmlSerializer(type);
                //序列化執行
                serializer.Serialize(fs, obj);
            }
        }

序列時,可以對類、屬性設置標記,選擇哪些屬性序列化、序列化字段別名、設置屬性是否屬于節點內屬性還是以子節點呈現等等。

2、將XML反序列為指定類對象

        /// <summary>
        /// XML文件反序列化成對象文件
        /// </summary>
        /// <param name="type">對象類型</param>
        /// <param name="fileName">反序列化的XML文件路徑</param>
        /// <returns>對象</returns>
        public static object DeSerialize(Type type, string fileName)
        {
            if (!File.Exists(fileName))
            {
                MessageBox.Show(fileName + " File Doesn't Exist!");
            }

            object obj;
            using (var fs = new FileStream(fileName, FileMode.Open))
            {
                var serializer = new XmlSerializer(type);
                obj = serializer.Deserialize(fs);
            }

            return obj;
        }

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()