/// <summary>
        /// Registers an <see cref="IConsumeMessageObserver{T}"/> which resolves the actual observer from the container lifetime scope
        /// </summary>
        /// <typeparam name="T">The message type</typeparam>
        /// <param name="connector"></param>
        /// <param name="lifetimeScope">The default lifetime scope</param>
        /// <returns></returns>
        public static ConnectHandle ConnectAutofacConsumeMessageObserver <T>(this IConsumeMessageObserverConnector connector, ILifetimeScope lifetimeScope)
            where T : class
        {
            var observer = new AutofacConsumeMessageObserver <T>(lifetimeScope);

            return(connector.ConnectConsumeMessageObserver(observer));
        }
        public ConnectHandle ConnectConsumeMessageObserver <T>(IConsumeMessageObserver <T> observer)
            where T : class
        {
            if (observer == null)
            {
                throw new ArgumentNullException(nameof(observer));
            }

            IConsumeMessageObserverConnector messagePipe = GetPipe <T, IConsumeMessageObserverConnector>();

            return(messagePipe.ConnectConsumeMessageObserver(observer));
        }