The BinaryMessageFormatter is very efficient and can be used to serialize most objects. The result is very compact and fast to parse, but does not allow for loosely coupled messaging as the XmlMessageFormatter does. Loosely coupled means that the client and the server can independently version the type that is sent and received.

When the application sends a message to the queue using an instance of the MessageQueue class, the formatter serializes the object into a stream and inserts it into the message body. When reading from a queue using a MessageQueue, the formatter deserializes the message data into the Body property of a Message.

BinaryMessageFormatter provides faster throughput than the XmlMessageFormatter. Use the BinaryMessageFormatter when pure speed rather than loosely coupled messaging is desired.