I search for a serializable dictionary in c# (framework 2.0), and I found this one :
http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx
which is pretty nice but I would like to have it serialize my dictionary like this :
<item>
<key>my_first_key</key>
<value>my_first_value</value>
</item>
<item>
<key>my_second_key</key>
<value>my_second_value</value>
</item>
I tried to modify the writeXml method like this :
writer.WriteStartElement("item")
writer.WriteElementString("key", key.ToString)
writer.WriteElementString("value", value.ToString)
And it works fine, but to deserialize the xml input as a dictionary, i don’t manage to make it work. I tried this :
reader.ReadStartElement("item")
reader.ReadStartElement("key")
Dim key As String = reader.ReadString()
And i get the key correctly, but into a String object. And when i try to add my key/value pair like this :
Me.Add(key, value)
It doesn’t work since key is a string and not a TKey type. Do you know how to “cast” or convert a string into a TKey ? Or encapsulate the key/value as a string into a TKey/Tvalue type ?
Thanks a lot in advance!
Your requirement seems to focus very much on string, while the code as proposed is generic. However, you can probably special case this, i.e.
(and likewise for the value)
and:
(and similar for the value)
Untested – but should do the job.