/// <summary>
        /// Enable the loading of message data for the specified message type. Message data is large data that is
        /// stored outside of the messaging system.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="configurator"></param>
        /// <param name="repository"></param>
        public static void UseMessageData <T>(this IPipeConfigurator <ConsumeContext <T> > configurator, IMessageDataRepository repository)
            where T : class
        {
            var transformConfigurator = new ConsumeTransformSpecification <T>();

            transformConfigurator.LoadMessageData(repository);

            configurator.AddPipeSpecification(transformConfigurator);
        }
        /// <summary>
        /// Enable the loading of message data for the specified message type. Message data is large data that is
        /// stored outside of the messaging system.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="configurator"></param>
        /// <param name="repository"></param>
        /// <param name="configureCallback"></param>
        public static void UseMessageData <T>(this IConsumePipeConfigurator configurator, IMessageDataRepository repository,
                                              Action <ITransformConfigurator <T> > configureCallback)
            where T : class
        {
            var transformConfigurator = new ConsumeTransformSpecification <T>();

            transformConfigurator.LoadMessageData(repository);

            configureCallback(transformConfigurator);

            configurator.AddPipeSpecification(transformConfigurator);
        }