将字典值序列化为字符串

时间:2012-10-19 11:13:07

标签: c# .net exception xml-serialization ienumerable

我正在尝试序列化包含非原始值的字典。通过实现IXmlSerializable,我正在使用常规方法来序列化字典。在WriteXML方法中,我将非原始值转换为字符串(这种转换的方式不相关,但该部分正在工作)。在ReadXML内部,我将反序列化的值(字符串)转换回原始类型。

但是,这种方法会引发错误: InvalidOperationException:要进行XML可序列化,从IEnumerable继承的类型必须在其继承层次结构的所有级别都具有Add(System.Object)的实现。

我认为这是因为该值不是原始的。但是,它不应该是可序列化的,因为它不是序列化的(而是转换为字符串)。任何想法如何解决这个问题?

应该提到我使用泛型,运行时是Mono环境。 类定义如下所示:

public class SerializableRefDictionary<TKey, TValue> : Dictionary<TKey, TValue>, IXmlSerializable where TValue : NonPrimitiveObject

1 个答案:

答案 0 :(得分:3)

似乎字典中的对象类型不是您出问题的原因。如果你有从Dictionary继承的类,你必须在你的类中实现

public void Add(object o);

Have you seen this answer?