如何使用 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读入您传递的缓冲区的字节数。