我有一个 API 控制器,其方法接收文件作为参数。我需要将文件作为参数传递给异步即发即忘方法来处理它。为此,我将文件“注入”到 lambda 函数,负责执行 de F&F 方法。然而,当执行F&F方法时,文件始终被释放。
如何将 FormFile 传递给 F&F 方法,而不释放文件?
这就是我正在做的事情:
[HttpPost]
[Route("example-route")]
public async Task<bool> CannonExcelContactsListUpload(Microsoft.AspNetCore.Http.IFormFile formFile)
{
this.CannonService.FireAsync<ExampleLogicClass, Microsoft.AspNetCore.Http.IFormFile>(
async (logic, file) =>
{
await logic.ExampleFireAndForgetMethodAsync(file);
},
formFile
);
return true;
}
您需要将文件缓冲到
MemoryStream
中,否则一旦请求函数完成,它就会被处理。
[HttpPost]
[Route("example-route")]
public async Task<bool> CannonExcelContactsListUpload(IFormFile formFile)
{
var ms = new MemoryStream();
await formFile.CopyToAsync(ms);
this.CannonService.FireAsync<ExampleLogicClass, Stream>(async (logic, file) =>
{
await logic.ExampleFireAndForgetMethodAsync(file);
},
ms
);
return true;
}