来自控制器的响应 class

Response from controller class

我有一个控制器 class 是工作人员编写的,其中包含一个看起来像这样的方法。

(显然这不是完整的代码,只是我感到困惑的部分)。它是 ASP.Net 核心项目的一部分。

var memoryStream = new MemoryStream();
var result = new HttpResponseMessage(HttpStatusCode.OK);

using (var stream = System.IO.File.OpenRead(newZipPath))
{
    stream.CopyTo(memoryStream);
    result.Content = new ByteArrayContent(memoryStream.ToArray());
}

return File(memoryStream.ToArray(), "application/zip");

现在我不太擅长 C#,但感觉“结果”变量不会被发送到任何地方或被使用?我是正确的还是 ASP.Net Core 有一些神奇的方法来发送这个结果以及 return 语句中的结果。

没错。 result 变量中似乎没有任何意义,ASP.Net MVC(框架和核心版本)将从 File(memoryStream.ToArray(), "application/zip");.

生成适当的 FileResult

您可以更进一步,真正减少此代码:

using (var stream = System.IO.File.OpenRead(newZipPath))
{
    return File(stream, "application/zip");
}

无需创建第二个 MemoryStream 并将其转换为字节数组。