In C#, Wie kann ich die serialize-Queue<>? (.Net 2.0)
In der XmlSerializer-Konstruktor Linie, die unten eine InvalidOperationException, die auch beschwert sich nicht über eine Standard-accesor implementiert den generischen Typ.
Queue<MyData> myDataQueue = new Queue<MyData>();
//Populate the queue here
XmlSerializer mySerializer =
new XmlSerializer(myDataQueue.GetType());
StreamWriter myWriter = new StreamWriter("myData.xml");
mySerializer.Serialize(myWriter, myDataQueue);
myWriter.Close();
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wäre es einfacher (und besser geeignet IMO) zum serialisieren der Daten aus der Warteschlange - vielleicht in einem flachen array oder
List<T>
. DaQueue<T>
implementiertIEnumerable<T>
Sie sollten in der Lage sein zu verwenden:Nicht alle Teile des Frameworks sind konzipiert für die XML-Serialisierung. Sie finden Wörterbücher, die fehlen auch in der Serialisierung Abteilung.
Einer Warteschlange ist ziemlich trivial zu implementieren. Sie können einfach erstellen Sie Ihre eigenen, die auch implementiert IList so, dass es serialisierbar sein.
wenn Sie möchten, verwenden Sie die eingebaute Serialisierung, die Sie brauchen, um zu spielen, das durch seine Regeln, was bedeutet, dass default-ctor und öffentliche get/set-Eigenschaften für die Mitglieder, die Sie serialisieren möchten (und vermutlich Deserialisieren )
auf die Daten geben, die Sie serialisieren möchten (MyData)
In meinem Fall hatte ich eine dynamische Warteschlange und ich hatte zum speichern und laden des Status dieser.
Using Newtonsoft.Json: