この MessageQueue で参照されるキューにオブジェクトを送信し、メッセージのラベルを指定します。
Overloads Public Sub Send( _
ByVal obj As Object, _ ByVal label As String, _ ByVal transactionType As MessageQueueTransactionType _)
[C#]
public void Send(objectobj,stringlabel,MessageQueueTransactionTypetransactionType);
[C++]
public: void Send(Object* obj,String* label,MessageQueueTransactionTypetransactionType);
[JScript]
public function Send(
obj : Object,label : String,transactionType : MessageQueueTransactionType);
パラメータ
- obj
キューに送信するオブジェクト。 - label
メッセージのラベル。 - transactionType
メッセージと関連付けるトランザクション コンテキストの種類を示す、 MessageQueueTransactionType 値の 1 つ。
例外
| 例外の種類 | 条件 |
|---|---|
| ArgumentNullException | label パラメータが null 参照 (Visual Basic では Nothing) です。 |
| MessageQueueTransaction | メッセージ キュー アプリケーションが、トランザクションの使用方法が間違っていることを示しました。 |
| InvalidEnumArgumentException | transactionType パラメータが、 MessageQueueTransactionType メンバの値ではありません。 |
| MessageQueueException | Path プロパティが設定されていません。
または メッセージ キューの API にアクセスしたときにエラーが発生しました。 |
解説
このオーバーロードを使用すると、 transactionType パラメータで定義されたトランザクション コンテキストを使用して、 obj パラメータを含むメッセージを MessageQueue が参照するキューに送信します。既に、メッセージの送信に使用するスレッドに結び付けられた外部トランザクション コンテキストがある場合は、 transactionType パラメータに Automatic を指定します。メッセージを単一の内部トランザクションとして送信する場合は、 Single を指定します。トランザクション メッセージを非トランザクション スレッドに送信する場合は、 None を指定できます。
キューに送信するオブジェクトは、 Message 、または任意のマネージ オブジェクトにすることができます。 Message 以外のオブジェクトを送信した場合、オブジェクトはシリアル化され、メッセージ本文に挿入されます。このオーバーロードを使用すると、メッセージを識別する文字列ラベルを指定できます。
メモ メッセージ ラベルはメッセージ キューのラベルと異なりますが、どちらもアプリケーション依存であり、メッセージ キューが継承する意味はありません。
Send を呼び出す前に Formatter プロパティを設定しないと、書式指定子が既定の XmlMessageFormatter に設定されます。
DefaultPropertiesToSend プロパティは、 Message 以外の任意のオブジェクトに適用されます。たとえば、 DefaultPropertiesToSend メンバを使用してラベルまたは優先順位を指定すると、指定した値は、アプリケーションが Message 以外の型のオブジェクトを含むメッセージをキューに送信するときに、そのメッセージに適用されます。 Message を送信する場合は、 Message に設定したプロパティ値が DefaultPropertiesToSend よりも優先され、このメッセージの Message.Formatter プロパティがキューの MessageQueue.Formatter プロパティよりも優先されます。
このメソッドが各種のワークグループ モードで使用できるかどうかを次の表に示します。
| ワークグループ モード | 使用可否 |
|---|---|
| ローカル コンピュータ | はい |
| ローカル コンピュータ + 直接書式名 | はい |
| リモート コンピュータ | いいえ |
| リモート コンピュータ + 直接書式名 | はい |
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- 直前の呼び出し元の完全信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細の参照先 : 部分信頼コードからのライブラリの使用
参照
MessageQueue クラス | MessageQueue メンバ | System.Messaging 名前空間 | MessageQueue.Send オーバーロードの一覧 | MessageQueueTransactionType | DefaultPropertiesToSend | Message | Transactional | Label | Peek | Receive | BeginPeek | BeginReceive