/// <summary> /// Converts the specified NMS message to an equivalent MSMQ message. /// </summary> /// <param name="message">NMS message to be converted.</param> /// <result>Converted MSMQ message.</result> public virtual Message ToMsmqMessage(IMessage message) { Message msmqMessage = new Message(); PrimitiveMap propertyData = new PrimitiveMap(); ConvertMessageBodyToMSMQ(message, msmqMessage); if (message.NMSTimeToLive != TimeSpan.Zero) { msmqMessage.TimeToBeReceived = message.NMSTimeToLive; } if (message.NMSCorrelationID != null) { propertyData.SetString("NMSCorrelationID", message.NMSCorrelationID); } msmqMessage.Recoverable = (message.NMSDeliveryMode == MsgDeliveryMode.Persistent); msmqMessage.Priority = ToMsmqMessagePriority(message.NMSPriority); msmqMessage.ResponseQueue = ToMsmqDestination(message.NMSReplyTo); if (message.NMSType != null) { if (SetLabelAsNMSType) { propertyData.SetString("NMSType", message.NMSType); } else { msmqMessage.Label = message.NMSType; } } // Populate property data foreach (object keyObject in message.Properties.Keys) { string key = (keyObject as string); object val = message.Properties[key]; if (!SetLabelAsNMSType && string.Compare(key, "Label", true) == 0 && val != null) { msmqMessage.Label = val.ToString(); } else { propertyData[key] = val; } } // Store the NMS property data in the extension area msmqMessage.Extension = propertyData.Marshal(); return(msmqMessage); }
public virtual Message ToMsmqMessage(IMessage message) { Message msmqMessage = new Message(); PrimitiveMap metaData = new PrimitiveMap(); ConvertMessageBodyToMSMQ(message, msmqMessage); if (message.NMSTimeToLive != TimeSpan.Zero) { msmqMessage.TimeToBeReceived = message.NMSTimeToLive; } if (message.NMSCorrelationID != null) { metaData.SetString("NMSCorrelationID", message.NMSCorrelationID); } msmqMessage.Recoverable = (message.NMSDeliveryMode == MsgDeliveryMode.Persistent); msmqMessage.Priority = ToMessagePriority(message.NMSPriority); msmqMessage.ResponseQueue = ToMsmqDestination(message.NMSReplyTo); if (message.NMSType != null) { msmqMessage.Label = message.NMSType; } // Store the NMS meta data in the extension area msmqMessage.Extension = metaData.Marshal(); return(msmqMessage); }