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;
}
}
}