55 lines
1.7 KiB
C#
55 lines
1.7 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace FastGithub
|
|
{
|
|
/// <summary>
|
|
/// 定义中间件管道创建者的接口
|
|
/// </summary>
|
|
/// <typeparam name="TContext">中间件上下文</typeparam>
|
|
public interface IPipelineBuilder<TContext>
|
|
{
|
|
/// <summary>
|
|
/// 获取服务提供者
|
|
/// </summary>
|
|
IServiceProvider AppServices { get; }
|
|
|
|
/// <summary>
|
|
/// 使用中间件
|
|
/// </summary>
|
|
/// <typeparam name="TContext"></typeparam>
|
|
/// <typeparam name="TMiddleware"></typeparam>
|
|
/// <param name="builder"></param>
|
|
/// <returns></returns>
|
|
IPipelineBuilder<TContext> Use<TMiddleware>() where TMiddleware : class, IMiddleware<TContext>;
|
|
|
|
/// <summary>
|
|
/// 使用中间件
|
|
/// </summary>
|
|
/// <typeparam name="TContext"></typeparam>
|
|
/// <param name="builder"></param>
|
|
/// <param name="middleware"></param>
|
|
/// <returns></returns>
|
|
IPipelineBuilder<TContext> Use(Func<TContext, Func<Task>, Task> middleware);
|
|
|
|
/// <summary>
|
|
/// 使用中间件
|
|
/// </summary>
|
|
/// <param name="middleware">中间件</param>
|
|
/// <returns></returns>
|
|
IPipelineBuilder<TContext> Use(Func<InvokeDelegate<TContext>, InvokeDelegate<TContext>> middleware);
|
|
|
|
/// <summary>
|
|
/// 创建所有中间件执行处理者
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
InvokeDelegate<TContext> Build();
|
|
|
|
/// <summary>
|
|
/// 使用默认配制创建新的PipelineBuilder
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
IPipelineBuilder<TContext> New();
|
|
}
|
|
}
|