如何使用 IBM.XMS for .NET Client 将 IBytesMessage 保存到 IBM MQ 中的文件
How do I save IBytesMessage to a file in IBM MQ using IBM.XMS for .NET Client
我正在使用 .Net C# IBM.XMS 库从 IBM MQ 获取消息。我可以接收消息 (IMessage),并且可以在以文本形式发送消息时获取消息并保存文件。我使用.Text 属性。但是,如果消息以 zip 形式发送,我不知道如何保存消息。我尝试查看是否可以获取 byte[] 主体并将其保存为文件。关于如何操作有什么建议吗?
message = consumer.Receive(TIMEOUTTIME);
if (message != null)
{
_log.LogInformation("Message received.");
var fileName = _fileUtil.GenerateFileName(_queueName);
int receivedBytes = 0;
if (message is ITextMessage)
{
var msg = (ITextMessage)message;
var result = msg.Text;
}
else if (message is IBytesMessage)
{
var msg = (IBytesMessage)message;
byte[] result = msg...
(how to get the bodys byte array)
...
File.WriteAllBytes(filepath, result);
}
您可以使用ReadBytes方法来读取消息负载。
Int32 ReadBytes(Byte[] array, Int32 length);
从光标的当前位置开始,从字节消息流中读取一个字节数组。该方法returns读入您传递的缓冲区的字节数。
我正在使用 .Net C# IBM.XMS 库从 IBM MQ 获取消息。我可以接收消息 (IMessage),并且可以在以文本形式发送消息时获取消息并保存文件。我使用.Text 属性。但是,如果消息以 zip 形式发送,我不知道如何保存消息。我尝试查看是否可以获取 byte[] 主体并将其保存为文件。关于如何操作有什么建议吗?
message = consumer.Receive(TIMEOUTTIME);
if (message != null)
{
_log.LogInformation("Message received.");
var fileName = _fileUtil.GenerateFileName(_queueName);
int receivedBytes = 0;
if (message is ITextMessage)
{
var msg = (ITextMessage)message;
var result = msg.Text;
}
else if (message is IBytesMessage)
{
var msg = (IBytesMessage)message;
byte[] result = msg...
(how to get the bodys byte array)
...
File.WriteAllBytes(filepath, result);
}
您可以使用ReadBytes方法来读取消息负载。
Int32 ReadBytes(Byte[] array, Int32 length);
从光标的当前位置开始,从字节消息流中读取一个字节数组。该方法returns读入您传递的缓冲区的字节数。