I am trying to find a way to send/receive a raw struct via MSMQ (System.Messaging) in C#. An unmanaged C++ app is on the other end and has a struct that it reads/writes directly. Rewritting the C++ code is not an option.The binary formatter doesn't like the fixed array but with the fixed array commented it will send (with a lot of extra stuff in the message). I can't find any means or documentation to explain how to use the extension field of the Message object, though it seems like a possible answer. Sample (non functional) code below. Any help would be greatly appreciated.

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
[Serializable()]
unsafe public struct Data
{
public Int64 m_Status;
public fixed Char m_USTR[18];
}
MessageQueue m_mqRaw = new MessageQueue(".\\Private$\\Test");
Data d = new Data();
SetData(ref d);

System.Messaging.Message msg = new System.Messaging.Message();
msg.Body = d;
m_mqRaw.Send(msg); //Runtime error, exception complains about fixed array