Sunday, May 20, 2007

วิธี เช็คเมสเสจของ ActiveMQ with C#

ตรวจว่า message ที่รับเข้ามาเป็นแบบใด โดยใช้การ GetType() ของ object

IMessage message = consumer.Receive("TEST.FOO");

Type
amqTypeText = typeof(ActiveMQTextMessage);
Type amqTypeBinary = typeof(ActiveMQBytesMessage);
Type amqStream = typeof(ActiveMQStreamMessage);

Console.WriteLine("message type is:" + message.GetType());

if (amqTypeText.IsInstanceOfType(message))
{
Console.WriteLine("receive TEXT message");
ActiveMQTextMessage _textMessage = (ActiveMQTextMessage)message;
messageType = _textMessage.NMSType;
data = Encoding.ASCII.GetBytes(_textMessage.Text);
}
if (amqTypeBinary.IsInstanceOfType(message))
{
Console.WriteLine("receive BYTE message");
ActiveMQBytesMessage _bytesMessage = (ActiveMQBytesMessage)message;
messageType = _bytesMessage.NMSType;
data = _bytesMessage.Content;
}
if (amqStream.IsInstanceOfType(message))
{
Console.WriteLine("receive Stream messge");
ActiveMQStreamMessage _streamMessage = (ActiveMQStreamMessage)message;
messageType = _streamMessage.NMSType;
data = _streamMessage.Content;
}

No comments: