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