45 using System.Collections.Generic;
46 using System.ComponentModel;
48 using System.Runtime.InteropServices;
49 using System.Xml.Serialization;
63 [XmlRoot(
"Dictionary")]
69 public string Pfad =
"Pfad";
75 public System.Xml.Schema.XmlSchema GetSchema()
80 public void ReadXml(
System.Xml.XmlReader reader)
82 XmlSerializer keySerializer =
new XmlSerializer(typeof(TKey));
83 XmlSerializer valueSerializer =
new XmlSerializer(typeof(TValue));
84 bool wasEmpty = reader.IsEmptyElement;
91 while (reader.NodeType !=
System.Xml.XmlNodeType.EndElement)
93 reader.ReadStartElement(
"item");
94 reader.ReadStartElement(
"key");
95 TKey key = (TKey)keySerializer.Deserialize(reader);
96 reader.ReadEndElement();
97 reader.ReadStartElement(
"value");
98 TValue value = (TValue)valueSerializer.Deserialize(reader);
99 reader.ReadEndElement();
100 this.Add(key, value);
101 reader.ReadEndElement();
102 reader.MoveToContent();
105 reader.ReadEndElement();
108 public void WriteXml(
System.Xml.XmlWriter writer)
110 XmlSerializer keySerializer =
new XmlSerializer(typeof(TKey));
111 XmlSerializer valueSerializer =
new XmlSerializer(typeof(TValue));
112 foreach (TKey key
in this.Keys)
114 writer.WriteStartElement(
"item");
115 writer.WriteStartElement(
"key");
116 keySerializer.Serialize(writer, key);
117 writer.WriteEndElement();
118 writer.WriteStartElement(
"value");
119 TValue value =
this[key];
120 valueSerializer.Serialize(writer, value);
121 writer.WriteEndElement();
122 writer.WriteEndElement();
Dictionary-Klasse mit Serialisierungserweiterung. Quelle: http://www.codeproject.com/Questions/454134/Serialize-Dictionary-in-csharp.