in src/main/csharp/DefaultMessageConverter.cs [435:479]
protected virtual void ConvertMessageBodyToMSMQ(IMessage message, Message answer)
{
if(message is TextMessage)
{
TextMessage textMessage = message as TextMessage;
byte[] buf = Encoding.UTF32.GetBytes(textMessage.Text);
answer.BodyStream.Write(buf, 0, buf.Length);
answer.AppSpecific = (int) NMSMessageType.TextMessage;
}
else if(message is BytesMessage)
{
BytesMessage bytesMessage = message as BytesMessage;
bytesMessage.Reset();
answer.BodyStream.Write(bytesMessage.Content, 0, bytesMessage.Content.Length);
answer.AppSpecific = (int) NMSMessageType.BytesMessage;
}
else if(message is ObjectMessage)
{
ObjectMessage objectMessage = message as ObjectMessage;
answer.Body = objectMessage.Body;
answer.AppSpecific = (int) NMSMessageType.ObjectMessage;
}
else if(message is MapMessage)
{
MapMessage mapMessage = message as MapMessage;
PrimitiveMap mapBody = mapMessage.Body as PrimitiveMap;
byte[] buf = mapBody.Marshal();
answer.BodyStream.Write(buf, 0, buf.Length);
answer.AppSpecific = (int) NMSMessageType.MapMessage;
}
else if(message is StreamMessage)
{
StreamMessage streamMessage = message as StreamMessage;
answer.AppSpecific = (int) NMSMessageType.StreamMessage;
// TODO: Implement
}
else if(message is BaseMessage)
{
answer.AppSpecific = (int) NMSMessageType.BaseMessage;
}
else
{
throw new Exception("unhandled message type");
}
}