C# 如何在c中读取格式为MQEVENT的IBM WebSphere MQ消息#

C# 如何在c中读取格式为MQEVENT的IBM WebSphere MQ消息#,c#,.net,ibm-mq,C#,.net,Ibm Mq,我可以从队列中获取事件消息。我得到消息属性。我非常确定MQEVENT类型是PCF格式的,但我似乎找不到任何关于如何获取该消息并将其转换为人类可读格式的好文档 会计科目 应用程序数据 应用程序原始数据 回退计数0 回退计数0 字符集437 完成代码0 CorrelationId系统。字节[] 数据长度236 数据偏移量0 编码546 到期日-1 反馈0 格式化MQEVENT GroupId系统。字节[] MessageFlags 0 MessageId系统。字节[] 消息长度236 Message

我可以从队列中获取事件消息。我得到消息属性。我非常确定MQEVENT类型是PCF格式的,但我似乎找不到任何关于如何获取该消息并将其转换为人类可读格式的好文档

会计科目
应用程序数据
应用程序原始数据
回退计数0
回退计数0
字符集437
完成代码0
CorrelationId系统。字节[]
数据长度236
数据偏移量0
编码546
到期日-1
反馈0
格式化MQEVENT
GroupId系统。字节[]
MessageFlags 0
MessageId系统。字节[]
消息长度236
MessageSequenceNumber 1
消息类型8
偏移量0
原始长度-1
持久性0
优先级0
PutApplicationName NTPMFG01
PutApplicationType 7
PutDateTime 2010年3月19日10:29:08下午
原因代码0
ReasonName MQRC_OK
ReplyToQueueManagerNamePMFG01
ReplyToQueueName
报告0
TotalMessageLength 236
用户ID
版本1

这是消息。
$ ? - ? ? ? ? D'0 MFG01?D-0微滤 G.CUST.CAT¤ ? ? $ ? ? ? % ? ? & ?

if(myMQMessage.Format.CompareTo(MQC.MQFMT_事件)==0) 我认为需要处理两次。 首先使用MQCFH处理PCF头

BuildMQCFH(new IBM.WMQ.PCF.MQCFH(myMQMessage));

public void BuildMQCFH(IBM.WMQ.PCF.MQCFH eventMessageHeader) {
  int reasonForEvent = eventMessageHeader.Reason;
}
然后必须将数据偏移量重置为0

myMQMessage.DataOffset = 0;
然后用PCFParameter处理PCF参数。 BuildPcfMessage(新的IBM.WMQ.PCF.PCFMessage(myMQMessage))

MQMessage、PCF.PCFMessage和MQCF各自执行一个readbyte(s)移动偏移量,之后不进行out重置。

if(myMQMessage.Format.CompareTo(MQC.MQFMT_事件)==0) 我认为需要处理两次。 首先使用MQCFH处理PCF头

BuildMQCFH(new IBM.WMQ.PCF.MQCFH(myMQMessage));

public void BuildMQCFH(IBM.WMQ.PCF.MQCFH eventMessageHeader) {
  int reasonForEvent = eventMessageHeader.Reason;
}
然后必须将数据偏移量重置为0

myMQMessage.DataOffset = 0;
然后用PCFParameter处理PCF参数。 BuildPcfMessage(新的IBM.WMQ.PCF.PCFMessage(myMQMessage))

MQMessage、PCF.PCFMessage和MQCF都执行一个readbyte(s)来移动偏移量,之后不进行out重置