MessageQueue.Send メソッド (Object)
この MessageQueue で参照される非トランザクション キューにオブジェクトを送信します。
Overloads Public Sub Send( _
ByVal obj As Object _)
[C#]
public void Send(objectobj);
[C++]
public: void Send(Object* obj);
[JScript]
public function Send(
obj : Object);
パラメータ
- obj
キューに送信するオブジェクト。
例外
例外の種類 | 条件 |
---|---|
MessageQueueException | Path プロパティが設定されていません。
または メッセージ キューの API にアクセスしたときにエラーが発生しました。 |
解説
このオーバーロードを使用して、 obj パラメータを含むメッセージを、 MessageQueue が参照するキューに送信します。キューに送信するオブジェクトは、 Message 、または任意のマネージ オブジェクトにすることができます。 Message 以外のオブジェクトを送信した場合、オブジェクトはシリアル化され、メッセージ本文に挿入されます。
このオーバーロードを使用してトランザクション キューにメッセージを送信すると、メッセージは配信不能キューに送信されます。メッセージを他のメッセージを含むトランザクションの一部にするには、パラメータとして MessageQueueTransaction または MessageQueueTransactionType をとるオーバーロードを使用します。
Send を呼び出す前に Formatter プロパティを設定しないと、書式指定子が既定の XmlMessageFormatter に設定されます。
DefaultPropertiesToSend プロパティは、 Message 以外の任意のオブジェクトに適用されます。たとえば、 DefaultPropertiesToSend メンバを使用してラベルまたは優先順位を指定すると、指定した値は、アプリケーションが Message 以外の型のオブジェクトを含むメッセージをキューに送信するときに、そのメッセージに適用されます。 Message を送信する場合は、 Message に設定したプロパティ値が DefaultPropertiesToSend よりも優先され、このメッセージの Message.Formatter プロパティがキューの MessageQueue.Formatter プロパティよりも優先されます。
このメソッドが各種のワークグループ モードで使用できるかどうかを次の表に示します。
ワークグループ モード | 使用可否 |
---|---|
ローカル コンピュータ | はい |
ローカル コンピュータ + 直接書式名 | はい |
リモート コンピュータ | いいえ |
リモート コンピュータ + 直接書式名 | はい |
使用例
[Visual Basic, C#, C++] メッセージ キューに接続し、そのキューにメッセージを送信する例を次に示します。
Imports System
Imports System.Messaging
Namespace MyProject
'/ <summary>
'/ Provides a container class for the example.
'/ </summary>
Public Class MyNewQueue
'**************************************************
' Provides an entry point into the application.
'
' This example sends a message to a queue.
'**************************************************
Public Shared Sub Main()
' Create a new instance of the class.
Dim myNewQueue As New MyNewQueue()
' Send a message to a queue.
myNewQueue.SendMessage()
Return
End Sub 'Main
'**************************************************
' Sends a message to a queue.
'**************************************************
Public Sub SendMessage()
' Connect to a queue on the local computer.
Dim myQueue As New MessageQueue(".\myQueue")
' Send a message to the queue.
If myQueue.Transactional = True Then
myQueue.Send("My Message Data.", New _
MessageQueueTransaction())
Else
myQueue.Send("My Message Data.")
End If
Return
End Sub 'SendMessage
End Class 'MyNewQueue
End Namespace 'MyProject
[C#]
using System;
using System.Messaging;
namespace MyProject
{
/// <summary>
/// Provides a container class for the example.
/// </summary>
public class MyNewQueue
{
//**************************************************
// Provides an entry point into the application.
//
// This example sends a message to a queue.
//**************************************************
public static void Main()
{
// Create a new instance of the class.
MyNewQueue myNewQueue = new MyNewQueue();
// Send a message to a queue.
myNewQueue.SendMessage();
return;
}
//**************************************************
// Sends a message to a queue.
//**************************************************
public void SendMessage()
{
// Connect to a queue on the local computer.
MessageQueue myQueue = new MessageQueue(".\\myQueue");
// Send a message to the queue.
if (myQueue.Transactional == true)
{
myQueue.Send("My Message Data.", new
MessageQueueTransaction());
}
else
{
myQueue.Send("My Message Data.");
}
return;
}
}
}
[C++]
#using <mscorlib.dll>
#using <system.dll>
#using <system.messaging.dll.>
using namespace System;
using namespace System::Messaging;
__gc class MyNewQueue
{
public:
void SendMessage()
{
// Connect to a queue on the local computer.
MessageQueue* myQueue = new MessageQueue(S".\\myQueue");
// Send a message to the queue.
if (myQueue->Transactional == true)
{
myQueue->Send(S"My Message Data.", new
MessageQueueTransaction());
}
else
{
myQueue->Send(S"My Message Data.");
}
return;
}
};
int main()
{
// Create a new instance of the class.
MyNewQueue* myNewQueue = new MyNewQueue();
// Send a message to a queue.
myNewQueue->SendMessage();
return 0;
}
[Visual Basic, C#, C++] アプリケーションで定義された Order クラスをキューに送信し、キューからメッセージを受信する例を次に示します。
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: 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 オーバーロードの一覧 | DefaultPropertiesToSend | Message | Path | Peek | Receive | BeginPeek | BeginReceive