BinaryFormatter ist in CF nicht vorhanden. Lösungen?

8

Ich muss Obj in / aus Byte [] auf kompaktem Rahmen serialisieren / deserialisieren, aber es gibt keinen BinaryFormatter, was soll ich tun? Vielen Dank. Dies ist die Klasse, die ich auf der Serverseite benutze, und ich will es auch auf dem Client (ein Gerät mit Windows Mobile 6)

%Vor%     
gigi 23.02.2011, 13:46
quelle

4 Antworten

10

In Ihrem Szenario sollten Sie protobuf-net wechseln; Dies ist nicht das gleiche Format wie BinaryFormatter , also müssten sowohl der Client als auch der Server optimiert werden, ist aber eine binäre Serialisierungs-API, die auf beiden Plattformen funktioniert und in der Regel viel kleiner als ein zusätzliches Extra. Das Format ist eigentlich google "Protokoll Puffer" Codierung; sehr schnell, plattformunabhängig und flexibel gestaltet, wenn Sie Eigenschaften usw. hinzufügen. Und es ist kostenlos. Ein Narr gibt es einfach weg.

    
Marc Gravell 23.02.2011, 13:54
quelle
3

Ursprünglich verwendeten wir die So gut wie es ist, die kompakte Framework-Serialisierung , die vollständig binär mit dem vollständigen Framework BinaryFormatter kompatibel ist, aber die Lizenzierung pro Gerät war ein Deal Breaker. Abhängig davon, wie viele Geräte Sie unterstützen müssen, kann es für Sie funktionieren. Wir haben auch festgestellt, dass BinaryFormatter Speicher- und Zeitaufwand hatte - nicht annähernd so viel wie SoapFormatter, aber immer noch signifikant für ein CE-Gerät.

Am Ende haben wir ein Serialisierungsframework mit BinaryWriter und BinaryReader direkt zusammen mit System.Activator erstellt, um die Klassen zu erstellen. Dies ermöglichte uns, einen großen Teil des Speicher- und Zeitaufwands, der mit der eingebauten Serialisierung verbunden ist, auf Kosten einer sorgfältigen Versionierung der Objekte und der Reihenfolge der Felder zu entfernen. Es ist zu beachten, dass unsere benutzerdefinierten Serialisierungsarbeiten vor der Veröffentlichung von protbuf.net durchgeführt wurden.

    
Jack Bolding 23.02.2011 14:14
quelle
2

Hier finden Sie eine Implementierung dessen, was Sie für die CF benötigen: Ссылка

auch interessant: wie Objekte in einem kompakten Framework serialisiert werden

Ich habe es nicht selbst versucht, weil ich es nie gebraucht habe. Entschuldigung, wenn ich nur ein paar Links poste.

    
Davide Piras 23.02.2011 13:50
quelle
0

Aus MSDNs Unterschieden zwischen .NET Compact Framework und .NET Framework :

  

Serialisierung

     

Aufgrund von Größen- und Leistungsaspekten unterstützt .NET Compact Framework keine binäre Serialisierung mit BinaryFormatter oder SOAP-Serialisierung mit SoapFormatter.

     

.NET Compact Framework bietet jedoch Serialisierungsunterstützung für die Übertragung von Objektdaten mithilfe von SOAP in XML-Webdiensten und das Serialisieren von Datasets in XML.

    
Donut 23.02.2011 13:50
quelle

Tags und Links