In C #, wie kann ich die Warteschlange serialisieren? (.Net 2.0)

8

In der XmlSerializer-Konstruktorzeile verursacht das Folgende eine InvalidOperationException, die darüber klagt, dass kein Standardaccessor für den generischen Typ implementiert wurde.

%Vor%     
CrashCodes 21.11.2008, 20:55
quelle

3 Antworten

14

Es wäre einfacher (und passender IMO), die Daten aus der Warteschlange zu serialisieren - vielleicht in einem flachen Array oder List<T> . Da Queue<T> IEnumerable<T> implementiert, sollten Sie Folgendes verwenden können:

%Vor%     
Marc Gravell 21.11.2008, 20:57
quelle
1

Nicht alle Teile des Frameworks sind für die XML-Serialisierung ausgelegt. Sie werden feststellen, dass auch Wörterbücher in der Serialisierungsabteilung fehlen.

Eine Warteschlange ist ziemlich einfach zu implementieren. Sie können leicht Ihr eigenes erstellen, das auch IList implementiert, damit es serialisierbar ist.

    
Will 21.11.2008 21:12
quelle
0

Wenn Sie die eingebaute Serialisierung verwenden möchten, müssen Sie nach ihren Regeln spielen, was bedeutet, dass die Standardeigenschaften ctor und public get / set für die Elemente verwendet werden, die Sie serialisieren (und vermutlich deserialisieren) möchten. auf den Datentyp, den Sie serialisieren möchten (MyData)

    
Asher 21.11.2008 21:07
quelle