2010-03-12 84 views
0

public class SerializableDictionary :Dictionary,IXmlSerializable以序列化字典。然而,它不工作时,我有收藏(例如列表)或除原始类型(例如。int,双,字符串....)以外的其他值。 我的问题是哪些类型的TKey,TValue暗示或可以容纳,以及如果有方法有一个可串行化字典作为值集合。C#中的XML SerializableDictionary的帮助#

回答

0

检查出Xml Serializable Generic Dictionary这样的功能......每个子项都必须是XmlSerializable。

我知道它不直接回答你的问题,但MSDN文档是垃圾的类。所以我个人不会使用它,直到它更有帮助。

+0

是的我已经在使用这段代码。我的问题是,每次我需要检查字典中值的类型,并且如果我有值类型列表我需要创建该类型的XMLSerializer,否则我创建一个泛型类型TValue的XMLSerializer。 所以我想知道是否有一个真正的泛型类型来同时收集离子和T。我读了一些地方,我可以重载泛型类型并定义我自己的泛型类型,如:MyType,MyType ,MyType 但是我m不知道它到底有多精确。 – panipsilos 2010-03-12 11:26:34

+0

如果我正确理解你想要做的是定义一个新的IList 类,约束T是IXmlSerializable。然后,您也可以为IList 类实现IXmlSerializable,并使其以与该词典类似的方式工作。 – Ian 2010-03-12 11:36:06

+0

不完全。我想实现一个可串行化的字典,该字典保存两个集合的值(例如,列表)和T类型的值(例如double,int,string ...)。我现在所拥有的serializableDictionary的版本可以保存第一个或后一个,但不能同时保存。为了实现这一点,我需要对每个我序列化的值来检查它的类型,然后明确实例化一个新类型的XMLserializer。我宁愿立即实例化一个泛型类型为“MyType”的XMLserializer,如果可能的话,它可以同时拥有这两种类型(集合和T)。 – panipsilos 2010-03-12 13:11:51