/// <summary>
        /// Adds the provided activity middleware to the builder.
        /// </summary>
        /// <param name="builder">The builder to add to, not null.</param>
        /// <param name="type">The activity middleware type to add, not null.</param>
        /// <returns>The original builder with activity middleware added.</returns>
        public static ITaskHubWorkerBuilder UseActivityMiddleware(this ITaskHubWorkerBuilder builder, Type type)
        {
            Check.NotNull(builder, nameof(builder));

            builder.UseActivityMiddleware(new TaskMiddlewareDescriptor(type));
            return(builder);
        }
        /// <summary>
        /// Adds the provided activity middleware to the builder.
        /// </summary>
        /// <param name="builder">The builder to add to, not null.</param>
        /// <param name="func">The activity middleware func to add, not null.</param>
        /// <returns>The original builder with activity middleware added.</returns>
        public static ITaskHubWorkerBuilder UseActivityMiddleware(
            this ITaskHubWorkerBuilder builder, Func <DispatchMiddlewareContext, Func <Task>, Task> func)
        {
            Check.NotNull(builder, nameof(builder));
            Check.NotNull(func, nameof(func));

            builder.UseActivityMiddleware(new TaskMiddlewareDescriptor(func));
            return(builder);
        }
 /// <summary>
 /// Adds the provided activity middleware to the builder.
 /// </summary>
 /// <param name="builder">The builder to add to, not null.</param>
 /// <typeparam name="TMiddleware">The activity middleware type to add.</typeparam>
 /// <returns>The original builder with activity middleware added.</returns>
 public static ITaskHubWorkerBuilder UseActivityMiddleware <TMiddleware>(this ITaskHubWorkerBuilder builder)
     where TMiddleware : ITaskMiddleware
 => builder.UseActivityMiddleware(typeof(TMiddleware));