【发布时间】:2010-03-13 23:05:45
【问题描述】:
使用来自... http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx 的引用我有一个可序列化的通用字典。
我想做的一件事是将 Key 添加到 Values 的 Attribute 节点中(只是因为我希望它是这样格式化的)。通常,密钥只是一个字符串。有什么办法可以强迫班级坚持这一点?它告诉我 TKey 不能从 read.GetAttribute("Key"); 转换为字符串。在值节点上。
while (reader.NodeType != System.Xml.XmlNodeType.EndElement)
{
reader.ReadStartElement("Entry");
reader.ReadStartElement("Key");
//TKey key = (TKey)keySerializaer.Deserialize(reader);
reader.ReadEndElement();
reader.ReadStartElement("Value");
TKey key = reader.GetAttribute("Name");
TValue value = (TValue)valueSerializer.Deserialize(reader);
reader.ReadEndElement();
this.Add(key, value); reader.ReadEndElement(); reader.MoveToContent();
}
同样,对应的 'WriteXml'...
writer.WriteStartElement("Entry");
writer.WriteStartElement("Key");
keySerializaer.Serialize(writer, key);
writer.WriteEndElement();
writer.WriteStartElement("Value");
writer.WriteAttributeString("Name", key.ToString());
TValue value = this[key];
valueSerializer.Serialize(writer, value);
writer.WriteEndElement();
writer.WriteEndElement();
【问题讨论】:
标签: c# generics xml-serialization