我有一個作業人員撰寫的控制器類,其中包含一個看起來像這樣的方法。
(顯然這不是完整的代碼,只是我覺得令人困惑的部分)。它是 ASP.Net Core 專案的一部分。
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 陳述句中的那個。
uj5u.com熱心網友回復:
這是正確的。變數中似乎沒有任何意義result,ASP.Net MVC(Framework 和 Core 版本)將從File(memoryStream.ToArray(), "application/zip");.
你可以更進一步,真正減少這段代碼:
using (var stream = System.IO.File.OpenRead(newZipPath))
{
return File(stream, "application/zip");
}
無需創建第二個 MemoryStream 并將其轉換為位元組陣列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/435085.html
標籤:C# 网 asp.net-mvc asp.net 核心
