2009-08-17 10 views
0

Dies ist meine KeyValue SammlungXML-Serialisierung von KeyValuePairCollection - nur ein Eintrag wird serialisiert bekommen, wenn nur ein Eintrag vorhanden ist

KeyValuePairCollection<int,string> KV=new KeyValuePairCollection<int,string>(); 
KV.Key = 1; 
KV.Value = "Chapter1"; 
KV.Key = 2; 
KV.Value = "Chapter2"; 
KV.Key = 3; 
KV.Value="Chapter3"; 


ich die Sammlung serialisiert den Code unten

mit
StreamWriter txtWrt=null; 
string m_ArraylstfileName = @"d:\XML\GenericsKV.xml"; 
XmlSerializer xmlPerSerlzr = 
    new XmlSerializer(typeof(KeyValuePairCollection<int,string>)); 
txtWrt = new StreamWriter(m_ArraylstfileName); 
xmlPerSerlzr.Serialize(txtWrt, KV); 

Meine XML-Datei speichert nur den letzten Eintrag (dh Schlüssel = 3, Wert = "Kapitel3")


Vorschlag bitte.

+0

Was genau ist ein KeyValuePairCollection ist? Wo ist diese Klasse definiert? – Cheeso

Antwort

1

jedes Mal, wenn Sie den Schlüssel und Value-Eigenschaft legen Sie die vorherigen Werte überschreiben nicht neue hinzufügen, das ist, warum Sie nur die letzte Fortsetzungs haben.

Das ist also nicht auf die Serialisierung im Zusammenhang, wenn Sie mehr als ein Paar Wörterbuch verwenden halten wollen

Dictionary<int,string> KV = new Dictionary<int,string>(); 
KV.Add(1,"a"); 
KV.Add(2,"b"); 
foreach (KeyValuePair<int, string> kvp in KV) 
{ 

} 
0

Ja ... weil Sie den Schlüssel und den Wert immer in Ihrem Code überschreiben. Ich nehme an, Sie möchten ein Wörterbuch verwenden?

Dictionary<int,string> dic = new Dictionary<int, string>(); 

dic.Add(1,"Chap 1"); 
dic.Add(2, "Chap 2"); 
dic.Add(3, "Chap 3"); 
Verwandte Themen