次の方法で共有


メッセージのシリアル化

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]

シリアル化とは、オブジェクトを取得し、状態情報を格納または転送できる形式に変換プロセスです。 シリアル化の基本的な考え方が、オブジェクトが書き込むそのメンバー変数を固定記憶域の値によって示される、通常は、現在の状態。 その後で、オブジェクトの状態をストレージから読み取る (逆シリアル化する) ことにより、オブジェクトを再作成できます。 オブジェクト ポインターおよび循環オブジェクト参照の参照オブジェクトをシリアル化するときに使用するすべての詳細を処理するシリアル化します。

メッセージ キュー機能でシリアル化と、オブジェクトまたはデータのセットをキューに送信できるメッセージに変換する処理し、オブジェクトまたはアプリケーションが処理されるデータに再びキューから取得し、メッセージを変換します。

フォーマッタ オブジェクトを処理 Visual Studio または .NET Framework アプリケーションでのメッセージのシリアル化します。 メッセージがキューに送信されると、フォーマッタ オブジェクト シリアル化をメッセージ キューに送信できるストリームにします。 キューから読み取るときには、メッセージ データが書式指定子によって逆シリアル化され、Body プロパティになります。

送信および受信するデータの種類のフォーマッタの適切な種類を選択するとします。 次の 3 つの定義済みのフォーマッタを出荷し、Visual Studio .NET Framework それぞれ、ように設計されている永続化して、異なる種類のデータを de-persist します。

  • XmlMessageFormatter オブジェクトとユーザーが判読できる形式の XML 文字列を使用してメッセージの出力のオブジェクトとプリミティブ データ型が続きます。 これは、既定のフォーマッタ MessageQueue コンポーネントの設定です。

  • BinaryMessageFormatter オブジェクトは 1 つまたは複数の接続オブジェクトをシリアル化されたストリームに保持されます。 非常にコンパクトいてを解析、高速ない人間が判読できるになります。

  • ActiveXMessageFormatter オブジェクト プリミティブ データ型を実現する以前のバージョンのメッセージ キューを使用するコンポーネントと相互運用が引き続き発生します。 結果のシリアル化は非常にコンパクトです。 このフォーマッタに設計されて Windows ことに注意してくださいおり人間が判読できる結果は生成されません。 ただし、シリアル化の非常に高速メソッドであります。

既定では、XmlMessageFormatterMessageQueue コンポーネント インスタンスを作成するときに作成されは、インスタンスに関連付けられます。 Send メソッドは、 MessageQueue インスタンスで呼び出されるこのフォーマッタを使用して、メッセージの本文がシリアル化します。 送信操作中に、フォーマッタを使用する追加コードを記述する必要はありません。

メッセージの読み取りは少し複雑です。 フォーマッタを使用してキューから読み取るするには、メッセージの本文の処理方法を示すプロパティを設定してする必要があります。 XmlMessageFormatter オブジェクトを使用している場合、 TargetTypesTargetTypeNames プロパティ設定します。 BinaryMessageFormatter オブジェクトを使用している場合、異なる一連のプロパティ設定します。 ActiveXMessageFormatter オブジェクトに関連付けられているプロパティがありません。 詳細については、「読み取りとメッセージの取得」を参照してください。

Visual Studio と .NET Framework 付属フォーマッタを使用してに加えて別の種類のデータを操作する場合に独自のフォーマッタを作成することができます。 コードでアクセスし、フォーマッタをプロジェクトにインポートできます。

作業をしているキュー、メッセージ、またはコンポーネントの FormatterMessageQueue プロパティを設定で使用するフォーマッタができます。

XML メッセージの書式設定の利点

XML フォーマッタの 1 つの利点はオブジェクトまたはデータがシリアル化されるときに作成される文字列が読めることです。 つまり問題が発生したメッセージができない場合、メッセージ キューから de-persisted、することができます、メッセージ自体を見て可能性の高い問題を修正します。

別の利点としては、このフォーマッタでシリアル化メッセージ同じフォーマッタ オブジェクトによって逆シリアル化する必要がないことです。 つまり、する当事者の双方データ スキーマを知っている限り、同じフォーマッタ クラスが、送信者と受信者である必要はありません。 さらに、XML フォーマッタによってシリアル化メッセージ必ずしもまったく逆シリアル化します。 ほとんどのブラウザーおよび他の XML ビューアーには、XML メッセージを解析できます。

参照

処理手順

方法 : MessageQueue コンポーネントのインスタンスを作成します。

その他の技術情報

送信とメッセージをシリアル化