public virtual Message ToMsmqMessage()

in src/main/csharp/DefaultMessageConverter.cs [86:136]


		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;
		}