次の方法で共有


メッセージの読み取りと取得の概要

更新 : 2007 年 11 月

メッセージを読み取って取得するときには、いくつかのことを考慮する必要があります。

キューへのアクセスのロック

取得操作を行うときには、操作中のキューからほかのユーザーがメッセージを削除できないように、一時的に制限する必要があります。これは、キューの DenySharedReceive プロパティを true に設定することによって行います。DenySharedReceive を設定すると、ガベージ コレクションまたは Close メソッドの呼び出しを通じてその使用を解除するまでは、他のユーザーが同じキューからメッセージを削除するのを防止できます。

取得するプロパティ

メッセージには多数のプロパティがあります。取得するプロパティをフィルタ処理することにより、関係のある情報だけに焦点を絞ることができます。たとえば、トランザクション メッセージを使用していない場合は、トランザクションに関するプロパティを取得する必要はありません。この場合は、MessagePropertyFilterIsFirstInTransactionIsLastInTransactionTransactionId、および TransactionStatusQueue プロパティを false に設定します。これにより、MessageQueue コンポーネントのインスタンスは、キューからメッセージを取得するときにこれらのプロパティに対応するプロパティ値を取得しなくなります。詳細については、「方法 : メッセージと共に取得するプロパティを指定する」を参照してください。

取得したメッセージの形式の指定

キューからメッセージを読み取る場合は、書式指定ツール オブジェクトを使用して、メッセージを操作するときにメッセージの内容をシリアル化および逆シリアル化します。既定では、作成された MessageQueue コンポーネントのすべてのインスタンスに XmlMessageFormatter オブジェクトが関連付けられていて、必要なプロパティをいくつか設定することにより、このオブジェクトを使用してメッセージを取得できます。また、用意されているその他各種の書式指定ツール オブジェクトも使用できます。使用できる書式指定ツールの詳細については、「メッセージのシリアル化」を参照してください。

XmlMessageFormatter は、オブジェクトおよびプリミティブ データ型を人間が読み取り可能な XML 文字列に永続化します。また、その逆の変換を行います。この書式指定ツールを使用してメッセージを取得する場合は、TargetTypeNames プロパティまたは TargetTypes プロパティを設定して、結果のメッセージをどのように処理するかを指定します。ほかの書式指定ツール オブジェクトを使用する場合は、プロパティが異なります。

参照

処理手順

方法 : 取得したメッセージに対する書式指定ツールを指定する

方法 : プログラムでメッセージを取得する

方法 : メッセージをピークする

概念

非同期のメッセージ処理

メッセージのシリアル化