using NCC.Dependency; using NCC.UnifyResult; using System.Reflection; namespace Microsoft.Extensions.DependencyInjection { /// /// 规范化结果服务拓展 /// [SuppressSniffer] public static class UnifyResultServiceCollectionExtensions { /// /// 添加规范化结果服务 /// /// /// public static IMvcBuilder AddUnifyResult(this IMvcBuilder mvcBuilder) { mvcBuilder.Services.AddUnifyResult(); return mvcBuilder; } /// /// 添加规范化结果服务 /// /// /// public static IServiceCollection AddUnifyResult(this IServiceCollection services) { services.AddUnifyResult(); return services; } /// /// 添加规范化结果服务 /// /// /// /// public static IMvcBuilder AddUnifyResult(this IMvcBuilder mvcBuilder) where TUnifyResultProvider : class, IUnifyResultProvider { mvcBuilder.Services.AddUnifyResult(); return mvcBuilder; } /// /// 添加规范化结果服务 /// /// /// /// public static IServiceCollection AddUnifyResult(this IServiceCollection services) where TUnifyResultProvider : class, IUnifyResultProvider { // 添加配置 services.AddConfigurableOptions(); // 是否启用规范化结果 UnifyContext.EnabledUnifyHandler = true; // 获取规范化提供器模型 UnifyContext.RESTfulResultType = typeof(TUnifyResultProvider).GetCustomAttribute().ModelType; // 添加规范化提供器 services.AddSingleton(); // 添加成功规范化结果筛选器 services.AddMvcFilter(); return services; } } }