using Masuit.Tools.AspNetCore.ResumeFileResults.Executor; using Masuit.Tools.AspNetCore.ResumeFileResults.ResumeFileResult; using Masuit.Tools.Core.Net; using Masuit.Tools.Files; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.Infrastructure; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; namespace Masuit.Tools.Core.AspNetCore { /// /// 依赖注入ServiceCollection容器扩展方法 /// public static class ServiceCollectionExtensions { /// /// 注入断点续传服务 /// /// /// public static IServiceCollection AddResumeFileResult(this IServiceCollection services) { services.TryAddSingleton, ResumePhysicalFileResultExecutor>(); services.TryAddSingleton, ResumeVirtualFileResultExecutor>(); services.TryAddSingleton, ResumeFileStreamResultExecutor>(); services.TryAddSingleton, ResumeFileContentResultExecutor>(); return services; } /// /// 注入7z压缩 /// /// /// public static IServiceCollection AddSevenZipCompressor(this IServiceCollection services) { services.AddHttpClient(); services.TryAddTransient(); return services; } /// /// 注入HttpContext静态对象,方便在任意地方获取HttpContext,services.AddHttpContextAccessor(); /// /// public static void AddStaticHttpContext(this IServiceCollection services) { services.AddSingleton(); } /// /// 注入HttpContext静态对象,方便在任意地方获取HttpContext,app.UseStaticHttpContext(); /// /// /// public static IApplicationBuilder UseStaticHttpContext(this IApplicationBuilder app) { var httpContextAccessor = app.ApplicationServices.GetRequiredService(); HttpContext2.Configure(httpContextAccessor); return app; } } }