Message クラスは、キューからのメッセージをピークまたは受信したり、キューにメッセージを送信するときにメッセージ プロパティを細かく制御したりするために使用します。
MessageQueue は、キューからのメッセージをピークまたは受信するときに Message クラスを使用します。これは、MessageQueue.Peek メソッドと MessageQueue.Receive メソッドがどちらも Message クラスの新しいインスタンスを作成し、インスタンスのプロパティを設定するためです。Message クラスの読み取り専用プロパティは、キューからのメッセージの取得に適用され、読み取り/書き込みプロパティはメッセージの送信と取得に適用されます。MessageQueue がキューからメッセージをピークまたは受信するときに、MessageReadPropertyFilter プロパティによって、メッセージのどのプロパティが取得されるかが決まります。
MessageQueue クラスの Send メソッドでは、そのキューに送信するメッセージとして任意のオブジェクト型を指定できます。MessageQueue インスタンスの DefaultPropertiesToSend プロパティを使うと、キューに送信される汎用メッセージの設定を指定できます。設定できるのは、書式指定子、ラベル、暗号化、認証などです。また、受信確認メッセージとレポート メッセージに応答するようにメッセージ処理アプリケーションを調整するときに、適切な DefaultPropertiesToSend メンバの値を指定することもできます。Message インスタンスを使ってキューにメッセージを送信する方法では、これらのプロパティの多くにアクセスして変更できます。1 つのメッセージだけ、またはメッセージごとのどちらかでプロパティを変更できます。Message プロパティは DefaultPropertiesToSend プロパティに優先します。
メッセージ データは主として Body プロパティに格納されますが、一部のデータは AppSpecific プロパティと Extension プロパティに格納されます。このうち、メッセージ データが暗号化、シリアル化、または逆シリアル化されるときに影響を受けるのは、Body プロパティの内容だけです。
Body プロパティの内容は、メッセージが送信されるときに、指定した Formatter プロパティを使ってシリアル化されます。シリアル化された内容は、BodyStream プロパティに格納されます。また、たとえばメッセージのデータ内容としてファイルを送信するために、BodyStream プロパティを直接設定することもできます。Body プロパティまたは Formatter プロパティは、メッセージを送信する前にいつでも変更でき、Send の呼び出し時にデータはその指定どおりにシリアル化されます。
MessageQueue.DefaultPropertiesToSend プロパティによって定義されるプロパティは、Message 以外のタイプのメッセージだけに適用されます。MessageQueue の DefaultPropertiesToSend プロパティを指定していても、キューに Message インスタンスが送信されると、そのインスタンスの同名のプロパティが使用され、プロパティの既定値は無視されます。
Message のインスタンスの初期プロパティ値の一覧については、Message コンストラクタのトピックを参照してください。