Ich habe eine Person Objekt und muss es als Byte speichern [] und wieder abrufen dieses Byte [] und zu Person Objekt konvertieren und BinaryFormatter ist availabe nicht in Silverkonvertieren Objekt (dh jedes Objekt wie Person, Mitarbeiter) zu Byte [] in Silverlight
Antwort
verwenden serialisierte Klasse das Objekt in ein Byte über unter Verwendung eines Memory
using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Serialization; .... byte[] bPersonInfo = null; using (MemoryStream mStream = new MemoryStream()) { System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(mStream, personInfo); bPersonInfo = mStream.ToArray(); } .... // Do what you have to do with bPersonInfo which is a byte Array... // To Convert it back PersonInfo pInfo = null; using (MemoryStream mStream = new MemoryStream(bPersonInfo)){ System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new BinaryFormatter(); pInfo = (PersonInfo)bf.DeSerialize(mStream); } // Now pInfo is a PersonInfo object.
hoffe, das hilft, mit freundlichen Grüßen, Tom zu konvertieren.
Ich habe XML-Serializer verwendet, um das Objekt in eine Zeichenfolge zu konvertieren, und sie konvertieren die Zeichenfolge in Silverlight erfolgreich in Byte [].
object address = new Address();
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(Address));
StringBuilder stringBuilder = new StringBuilder();
using (StringWriter writer = new StringWriter(stringBuilder))
{
serializer.Serialize(writer, address);
}
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
byte[] data = encoding.GetBytes(stringBuilder.ToString());
Da die von t0mm13b genannte Namespaces nicht Teil der Silverlight .NET-Engine ist, ist der richtige Weg, um diese Abhilfe zu verwenden, um den Datenvertrag Serializer Nutzung:
http://forums.silverlight.net/forums/t/23161.aspx
Von Link :
string SerializeWithDCS(object obj)
{
if (obj == null) throw new ArgumentNullException("obj");
DataContractSerializer dcs = new DataContractSerializer(obj.GetType());
MemoryStream ms = new MemoryStream();
dcs.WriteObject(ms, obj);
return Encoding.UTF8.GetString(ms.GetBuffer(), 0, (int)ms.Position);
}
Wenn Sie wirklich binär brauchen und wollen es super schnell und sehr klein sein, dann sollten Sie protobuf von Google verwenden.
http://code.google.com/p/protobuf-net/
Sehen sie sich diese Performance-Zahlen. Protobuf ist weit und weg der schnellste und kleinste.
ich verwendet habe, es für WCF < -> Silverlight mit Erfolg und würde nicht zögern, es für ein neues Projekt wieder zu verwenden.
- 1. Objekt in Byte konvertieren []
- 2. Konvertieren von Document-Objekt byte []
- 3. C# Objekt [] in Byte [] konvertieren, aber wie Byte-Objekt als Byte beibehalten?
- 4. Konvertieren Objekt in Byte-Array in C#
- 5. festes Objekt zu Byte-Array
- 6. Argumente zu Objekt konvertieren?
- 7. Byte-Array zu Image-Objekt
- 8. konvertieren komplexes JavaScript-Objekt zu Punktnotation Objekt
- 9. Objekt in Enum C konvertieren
- 10. Konvertieren eine Liste von Personen-Objekt in einen String getrennt von getName() Eigenschaft Person Objekt
- 11. konvertieren dynamisches Objekt in C# -Objekt
- 12. Konvertieren Sie jedes Objekt in pretty HTML in Java
- 13. Android- Wie kann ich android.net.Uri Objekt in java.net.URI Objekt konvertieren?
- 14. C# -Objekt in Json-Objekt konvertieren
- 15. Konvertieren literal Objekt zu bestimmten Klasse 'Objekt in Javascript
- 16. konvertieren Hash in Objekt
- 17. JQuery Jedes Json Objekt
- 18. Objekt in NameValueCollection konvertieren
- 19. CoapExchange in Byte konvertieren []
- 20. Wie kann ich eine Silverlight ImageSource in ein Byte [] konvertieren?
- 21. Konvertieren Array zu einem Objekt In PHP
- 22. Konvertieren von Daten- * Attribute zu einem Objekt
- 23. AttributError-Objekt Person hat keine Attribut-ID
- 24. Konvertieren str Objekt der Liste zu einer Liste Objekt
- 25. JSON-Array von [Objekt, Objekt], [Objekt, Objekt] zu tatsächlichen Werten konvertieren?
- 26. Silverlight: Bild byte []
- 27. json Objekt csv-Format in Javascript konvertieren
- 28. Konvertieren Zeichenfolge in JSON-Objekt
- 29. Rohvektor in R-Objekt konvertieren
- 30. Konvertieren Zeichenfolge in JS-Objekt
Ich habe das gleiche Problem beim Konvertieren einer bestehenden Winforms App zu Silverlight. Die bestehende Funktion mit den unzulässigen Funktionen AllocHGlobal und FreeHGlobal ist: public static byte [] RawSerialize (object irgendetwas) { int rawsize = Marshal.SizeOf (alles); IntPtr Puffer = Marshal.AllocHGlobal (Rawsize); Marshal.StructureToPtr (alles, Puffer, falsch); byte [] rawdatas = neues Byte [rawsize]; Marshal.Copy (Puffer, Rawdatas, 0, Rawsize); Marshal.FreeHGlobal (Puffer); Rückkehr Rawdatas; } – Jeffrey