本文扩展了之前一个关于序列化包含字典成员类的问题的讨论。该类包含三个属性: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