using Masuit.Tools.AspNetCore.ResumeFileResults.Extensions; using Masuit.Tools.AspNetCore.ResumeFileResults.ResumeFileResult; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Infrastructure; using Microsoft.Extensions.Logging; using System; using System.Threading.Tasks; namespace Masuit.Tools.AspNetCore.ResumeFileResults.Executor { /// /// 使用本地虚拟路径的可断点续传的FileResult /// internal class ResumeVirtualFileResultExecutor : VirtualFileResultExecutor, IActionResultExecutor { /// /// 构造函数 /// /// /// public ResumeVirtualFileResultExecutor(ILoggerFactory loggerFactory, IHostingEnvironment hostingEnvironment) : base(loggerFactory, hostingEnvironment) { } /// /// 执行FileResult /// /// /// /// public virtual Task ExecuteAsync(ActionContext context, ResumeVirtualFileResult result) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (result == null) { throw new ArgumentNullException(nameof(result)); } context.SetContentDispositionHeaderInline(result); return base.ExecuteAsync(context, result); } } }