using NCC; using NCC.Dependency; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using System; namespace Microsoft.Extensions.DependencyInjection { /// /// ASP.NET Mvc 服务拓展类 /// [SuppressSniffer] public static class AspNetMvcBuilderServiceCollectionExtensions { /// /// 注册 Mvc 过滤器 /// /// /// /// /// public static IMvcBuilder AddMvcFilter(this IMvcBuilder mvcBuilder, Action configure = default) where TFilter : IFilterMetadata { mvcBuilder.Services.AddMvcFilter(configure); return mvcBuilder; } /// /// 注册 Mvc 过滤器 /// /// /// /// /// public static IServiceCollection AddMvcFilter(this IServiceCollection services, Action configure = default) where TFilter : IFilterMetadata { // 非 Web 环境跳过注册 if (App.WebHostEnvironment == default) return services; services.Configure(options => { options.Filters.Add(); // 其他额外配置 configure?.Invoke(options); }); return services; } } }