如何在 asp.net 核心中将应用程序服务与IFormFile分离而无需流复制开销。
public interface IUploadService
{
Task UploadAsync(IFormFile file, CancellationToken cancellationToken = default);
}
[HttpPost]
public async Task<IActionResult> UploadFile([FromServices] IUploadService uploadService)
{
foreach(var file in Request.Form.Files)
{
await uploadService.UploadAsync(file);
}
return Ok();
}
我需要将 UploadAsync 方法与 IFormFile 分离,因为应用程序服务层依赖于 Microsoft.AspNetCore.Http.Features 包,我应该将其删除。一种解决方案是将 IFormFile 复制到文件流或内存流并将流传递给 UploadAsync 方法。但这种方式有流复制开销。我需要一个没有任何开销的解决方案,并将应用程序服务与 IFormFile 分离。例如在 UploadAsync 方法中传递 IFormFile 流指针和复制流的任何方式。谢谢。