沒有預設建構子無法對List<>進行xml序列化

突然需要寫個xml的設定檔,於是就簡單寫了一個類別TestXml,其中含有一個List<TestA>的成員。TestA也是個簡單的類別,只有兩個屬性及一個帶有參數的建構子。



針對Xml的序列化也是簡單地使用XmlSerialize類別來處理,程式碼如下。但是一執行就出現了Exception。



Exception的內容是這樣寫的,它說無法序列化List<>中的型別。


一開始以為是TestA類別上要加上[Serializable],結果加了也沒用。後來又加了XmlArray、XmlArrayItem等等的,還是沒用。

最後就放棄List<>,先針對單一的類別TestA來進行Xml序列化,才知道原來是TestA這個類別沒有預設建構子(就是不帶任何參數的建構子)。找了半天,原來是這個問題。一切只能說List<TestA>無法序列化時的錯誤訊息也太不直覺了吧。



留言

這個網誌中的熱門文章

DOS Batch指令檔中如何記錄log資訊

用捷徑方式執行需帶入命令列參數的Windows Form程式

使用regular expression來match中括號(square bracket)