Visual Studio,C#:代码分析请求类"alias"上的序列化构造函数



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

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)

我的问题是,我在这些方法里面放了什么?没有实例,因此没有任何东西可用于序列化。这是一个"别名"

我假设我将它们标记为虚拟的。但即使这样,为了序列化字典实例,我需要在里面放些什么呢?

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

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

using TagAttributes = System.Collections.Generic.Dictionary<string, string>;

最新更新