2016-10-20 10 views
-1

byte[]を特定のオブジェクトに変換しようとしています。特定のタイプを使用してオブジェクトをシリアライズ

メッセージのクラス構造は以下の通りです:

public class ProjectMessageQueueMessage 
{ 
    public ProjectMessageQueueMessage(); 
    public byte[] MessageData { get; set; } 
    public string MessageID { get; set; } 
    public string MessageType { get; set; } 
} 
をそして私がしようとするので、

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

のように、特定のクラスにそれをシリアル化するとき、私は次のエラーを取得する:

Cannot convert from byte[] to ExtendedScanMessage

タイプを削除することができます。

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

しかし、出力は自分のクラスにシリアル化されません。

何か不足していますか?

+0

を'ExtendedScanMessage'は' byte [] 'ではありません。デシリアライゼーションの何らかの仕掛けがなければ、それは他に何も得られません。そのバイト配列を別のバイト配列にシリアル化しようとしています。それが何を意味するかわからない。 –

+0

シリアル化はオブジェクトから文字列を作成します。あなたは何をしたいですかDESERIALIZE – Misiakw

+0

@Misiakwしかし、バイト配列から文字列に最初。 –

答えて

0

、あなたがfolowingの一部使用することができ、あなたのエンコーディングに応じて、

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

次のコードのようなものを書く必要があります使用してエンコードに応じて:はい、あなたは Encoding.DefaultEncoding.BigEndianUnicodeEncoding.UTF32Encoding.UTF7Encoding.UTF8Encoding.Unicode

関連する問題