public PublisherConfiguration WithHook(IMessageHook<object> hook)
        {
            Contract.Requires(hook != null);

            schema.Hooks.Add(hook);
            return this;
        }
        public PublisherConfiguration WithHook(IMessageHook<MessagePayload> hook)
        {
            Contract.Requires(hook != null);

            schema.PostPackagingHooks.Add(hook);
            return this;
        }
        public DirectRequestReplySenderConfiguration WithReceiveHook(IMessageHook<MessagePayload> hook)
        {
            Contract.Requires(hook != null);

            receiveSchema.Hooks.Add(hook);
            return this;
        }