0

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

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

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

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

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

1 回答 1

3

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

public void Add(object o);

你看过这个答案吗?

于 2012-10-19T12:18:29.397 回答