/// <summary> /// Gets the body. /// </summary> /// <param name="serializedMessage">The serialized message.</param> /// <returns>The message body as an <see cref="Object"/></returns> public static object GetBody(this SerializableMessage serializedMessage) { if (serializedMessage == null) { throw new ArgumentNullException("serializedMessage"); } lock (serializedMessage) { // create an instance of the message formatter supplied in the serialized message. IMessageFormatter messageFormatter = (IMessageFormatter)Activator.CreateInstance(serializedMessage.FormatterType); // now use that formatter to read the message. using (MemoryStream memoryStream = new MemoryStream(serializedMessage.MessageData)) { using (Message message = new Message()) { message.BodyStream = memoryStream; if (messageFormatter.CanRead(message)) { return(messageFormatter.Read(message)); } } } return(null); } }