2016-10-20 4 views
-1

Ich bin Jsonserializer.SerializeObject versuchen, eine byte[] in ein bestimmtes Objekt zu konvertieren.Serialize Objekt mit bestimmten Typ

Die Klassenstruktur der Nachricht folgt:

public class ProjectMessageQueueMessage 
{ 
    public ProjectMessageQueueMessage(); 
    public byte[] MessageData { get; set; } 
    public string MessageID { get; set; } 
    public string MessageType { get; set; } 
} 

Und wenn ich es in eine bestimmte Klasse versuchen und serialisiert werden, wie so

byte[] output = JsonSerializer.SerializeObject<ExtendedScanMessage>(message.MessageData); 

ich die folgende Fehlermeldung erhalten:

Cannot convert from byte[] to ExtendedScanMessage

Ich kann den Typ entfernen, so:

byte[] output = JsonSerializer.SerializeObject(message.MessageData); 

Aber dann Ausgabe wird nicht zu meiner Klasse serialisiert.

Fehle ich etwas?

+0

Ja, du bist etwas fehlt 'ExtendedScanMessage' ist kein' byte [] '. Ohne eine Deserialisierung wird es nie etwas anderes bekommen. Sie versuchen nun, dieses Byte-Array zu einem anderen Byte-Array zu serialisieren. Nicht sicher, was das heißt. –

+0

Serialisierung macht String aus Objekt. Was Sie tun möchten, ist DESERIALIZE – Misiakw

+0

@Misiakw Aber dann zuerst von Byte-Array zu einer Zeichenfolge. –

Antwort

0

je nach kodieren Sie verwenden Sie so etwas wie in Code unten

var outputString = Encoding.Default.GetString(message.MessageData); 
var output = JsonConvert.DeserializeObject<ExtendedScanMessage>(outputString); 

je nach kodieren, können Sie einige Folowing verwenden schreiben sollte: Encoding.DefaultEncoding.BigEndianUnicodeEncoding.UTF32Encoding.UTF7Encoding.UTF8Encoding.Unicode

Verwandte Themen