참조를 사용하여 ... http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx 나는 serializable 일반 사전 있습니다.'세미'일반 사전 직렬화. (C#)
내가 원했던 한 가지는 Key의 속성 노드에 Key를 추가하는 것입니다. 종종 Key는 문자열입니다. 수업을 강요 할 수있는 방법이 있습니까? 그것은 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();
}
마찬가지로, corrosponding '되는 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();