1.基本.NET淺序列化

來源:互聯網
上載者:User
淺序列化:只序列化類的公用欄位和屬性
    公用屬性必須是可讀且可寫的
    使用命名空間:using System.Xml.Serialization;

    以Book類為例:
    序列化模板:        public void SerializeIt(string filename)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(Book));
            StreamWriter writer = new StreamWriter(filename);
            Book myBook = new Book();

            serializer.Serialize(writer, myBook);
            writer.Close();
        }

    
    反序列化模板:        public void DeserializeIt(string filename)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(Book));
            FileStream fs = new FileStream(filename, FileMode.Open);
            Book myBook = (Book)serializer.Deserialize(fs);
            fs.Close();
        }

*使用XmlSerializer的類必須有一個不帶參數的預設建構函式——在反序列化中使用
*序列化ArrayList類型欄位X的特殊處理:在ctor中 this.X = new ArrayList();
*對於參考關聯性,如果A中引用了B,那麼
    在序列化A的時候,會產生如下格式的XML:
    <A>
        <B>xxxxx</B>
    </A>
    在還原序列化A對象的時候,A中也會包含有具體值的B對象
*淺序列化不支援循環參考,即A引用B的同時,B也引用了A

序列化時,將XML格式定製為SOAP格式:使用XmlSerializer建構函式的另一個重載:        public void SerializeIt(string filename)
        {
            SoapReflectionImporter import = new SoapReflectionImporter();
            XmlTypeMapping soapMapping = import.ImportTypeMapping(typeof(Book));

            XmlSerializer serializer = new XmlSerializer(soapMapping);


            StreamWriter writer = new StreamWriter(filename);
            Book myBook = new Book();

            serializer.Serialize(writer, myBook);
            writer.Close();
        }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.