// Copyright (c) 2020-2021 百小僧, Baiqian Co.,Ltd. // Furion is licensed under Mulan PSL v2. // You can use this software according to the terms and conditions of the Mulan PSL v2. // You may obtain a copy of Mulan PSL v2 at: // http://license.coscl.org.cn/MulanPSL2 // THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. // See the Mulan PSL v2 for more details. using Furion; using Furion.DependencyInjection; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using System; namespace Microsoft.Extensions.DependencyInjection { /// /// Mvc 服务拓展类 /// [SuppressSniffer] public static class MvcBuilderServiceCollectionExtensions { /// /// 注册 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; } } }