本文擴展了之前一個關於序列化包含字典成員類的問題的討論。該類包含三個屬性:guiPath
、configPath
和mappedDrives
。 mappedDrives
是一個字典,用於映射驅動器字母到網絡路徑。
然而,在序列化或反序列化該類時,用戶會收到以下錯誤:
無法序列化成員 App.Configfile.mappedDrives
此錯誤發生是因為某種原因,.NET 2.0 中的泛型字典不可 XML 序列化。
解決方案
為了解決這個問題,用戶可以使用自定義的可序列化字典類。 Paul Welter在他的博客上提供了一個這樣的類:
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
[XmlRoot("dictionary")]
public class SerializableDictionary : Dictionary, IXmlSerializable
{
// 部分代码省略 ...
}
此類實現了 IXmlSerializable
接口,允許它被序列化和反序列化。然後,用戶可以在其主類中使用此自定義字典類:
// ...
public Dictionary mappedDrives = new SerializableDictionary();
// ...
這樣應該允許該類正確地序列化和反序列化。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3