1

私は私のプログラムでこれを持っています、

string message = string.Empty;                
queue.AddMessage(new CloudQueueMessage(message));

文字列をキューに入れることはできますが、それは機能しますが、独自のモデルがある場合、それを自分のキューにプッシュするにはどうすればよいでしょうか? このモデルをバイトに変換する方法はありますか? バイトをプッシュすることもできることがわかったので。

モデルとは、次のような意味です。

public class Region
{
    public string countryCode { get; set; }
    public string countryName { get; set; }
    public string region { get; set; }
}

モデルをキューにプッシュするにはどうすればよいですか?

4

2 に答える 2

1

Azure Queue Storage の転送単位は、CloudQueueMessage

クラウド メッセージは、メッセージのペイロード (つまり、オブジェクトまたはエンティティ グラフ) をシリアル化された文字列 ( xmlor などjson) またはシリアル化されたバイナリ表現 ( byte[]) で運びます。次のようなシリアル化オプションがあります。

ペイロードのシリアル化形式の選択は、データに必要な「コンパクトさ」のレベルと、ダウンストリーム クライアントが使用するテクノロジによって必要とされる互換性によって異なります。

帯域幅と逆シリアル化時間が絶対的に重要でない限りJson、一般的な開始点として使用することをお勧めします.

その後、メッセージはAddMessageAsyncなどのメソッドで発行され、 GetMessageAsyncによって消費されます。

パブリッシュするには、クラス/エンティティ グラフをシリアル化する必要があります。メッセージ ペイロードを受け入れるCloudQueueMessage コンストラクター オーバーロードbyte[]またはパラメーターがあります。string

CloudQueueMessage(byte[])
CloudQueueMessage(string)

同様に、コンシューマーは受信したペイロードを逆シリアル化する必要があります。これは次のいずれかで取得できます。

参照: XmlSerialization の例: Azure Queue Storage でのオブジェクト メッセージの受け渡し

于 2013-05-27T06:30:40.537 に答える
0

各アプリでモデルを同じように読み書きする場合は、シリアライゼーション/デシリアライゼーション関数を共有して、オブジェクトを文字列またはバイト [] に変換できます。

于 2013-05-27T06:17:14.820 に答える