in src/main/csharp/DefaultMessageConverter.cs [155:225]
public virtual IMessage ToNmsMessage(Message message, bool convertBody)
{
BaseMessage answer = CreateNmsMessage(message, convertBody);
// Get the NMS property data from the extension area
PrimitiveMap propertyData = PrimitiveMap.Unmarshal(message.Extension);
try
{
answer.NMSMessageId = message.Id;
answer.NMSCorrelationID = propertyData.GetString("NMSCorrelationID");
answer.NMSDeliveryMode = (message.Recoverable ? MsgDeliveryMode.Persistent : MsgDeliveryMode.NonPersistent);
answer.NMSDestination = ToNmsDestination(message.DestinationQueue);
}
catch(InvalidOperationException)
{
}
try
{
answer.NMSReplyTo = ToNmsDestination(message.ResponseQueue);
answer.NMSTimeToLive = message.TimeToBeReceived;
answer.NMSPriority = ToNmsMsgPriority(message.Priority);
}
catch(InvalidOperationException)
{
}
try
{
if(message.Label != null)
{
if(SetLabelAsNMSType)
{
answer.NMSType = message.Label;
}
else
{
answer.Properties["Label"] = message.Label;
}
}
answer.Properties["LookupId"] = message.LookupId;
}
catch(InvalidOperationException)
{
}
foreach(object keyObject in propertyData.Keys)
{
try
{
string key = (keyObject as string);
if(string.Compare(key, "NMSType", true) == 0)
{
answer.NMSType = propertyData.GetString(key);
}
else if(string.Compare(key, "NMSCorrelationID", true) == 0)
{
answer.NMSCorrelationID = propertyData.GetString("NMSCorrelationID");
}
else
{
answer.Properties[key] = propertyData[key];
}
}
catch(InvalidOperationException)
{
}
}
return answer;
}