0

我创建了以下等效的别名:

public class TagAttributes : Dictionary<String, String> { }

代码分析指出我需要将其标记为可序列化,我这样做了。

[Serializable()]
public class TagAttributes : Dictionary<String, String> { }

接下来,代码分析指出我需要包含一个具有以下签名的构造函数:

protected TagAttributes(SerializationInfo info, StreamingContext context)

由此,我知道还必须包括以下方法:

public override void GetObjectData(SerializationInfo info, StreamingContext context)

我的问题是,我在这些方法中放了什么?没有实例,所以序列化没有什么可参考的。这是一个“别名”。

我想我会将它们标记为虚拟的。但即便如此,我必须在里面放什么才能序列化字典实例。

4

2 回答 2

3

由于您的类派生自Dictionary<string, string>并且很可能只是添加了一些附加功能,因此您可以只调用基类构造函数。 http://msdn.microsoft.com/en-us/library/dx4ybycc.aspx

于 2013-06-12T06:56:34.163 回答
2

如果你想要一个别名,使用这个:

using TagAttributes = System.Collections.Generic.Dictionary<string, string>;
于 2013-06-12T06:46:09.563 回答