public void MutateOutgoing(object[] messages, TransportMessage transportMessage)
        {
            // the bytes containing the serialized outgoing messages.
            byte[] bytes = transportMessage.Body;

            // optionally replace the Body
            transportMessage.Body = ServiceThatChangesBody.Mutate(messages);

            // the outgoing headers
            Dictionary <string, string> headers = transportMessage.Headers;

            // optional manipulate headers

            // add a header
            headers.Add("MyHeaderKey1", "MyHeaderValue");

            // remove a header
            headers.Remove("MyHeaderKey2");
        }
        public void MutateIncoming(TransportMessage transportMessage)
        {
            // the bytes containing the incoming messages.
            var bytes = transportMessage.Body;

            // optionally replace the Body
            transportMessage.Body = ServiceThatChangesBody.Mutate(transportMessage.Body);

            // the incoming headers
            var headers = transportMessage.Headers;

            // optional manipulate headers

            // add a header
            headers.Add("MyHeaderKey1", "MyHeaderValue");

            // remove a header
            headers.Remove("MyHeaderKey2");
        }