簡體   English   中英

將文件 io 放在 ASP.NET web Z8A5DA52ED126447D359E70C0572A1 的位置

[英]Where to put file io in ASP.NET web api

我目前在我的 controller ZA2F2ED4F8EBC4AB4C21A21 的構造函數中調用了我的文件 io class。 我注意到每次我點擊 api 端點時都會重新讀取 csv 文件,這並不理想。 我應該在哪里有這個,所以我的 csv 只能在啟動時讀取?

namespace API.Controllers
{
    [ApiController]

    public class CovidDataController : ControllerBase
    {
        private ReadCSV readCSV;

        public CovidDataController()
        {
            readCSV = new ReadCSV("CovidFileIO/covid19-download.csv");
            readCSV.CreateDataObjects(100); // Pass in how many lines to read
        }

        // This endpoint will return records from the covid data object.
        [Route("api/[controller]")] // route is api/CovidData
        [HttpGet]
        public List<CovidData> GetData()
        {
            return readCSV.covidDataObjects;
        }
    }
}

您可以創建一個中間件,然后在 startup.cs 中注冊它只會在網站僅在 url 上點擊一次時運行

你的中間件代碼

//創建中間件文件夾

public task CSVMiddleware(){

  private ReadCSV readCSV;

            readCSV = new ReadCSV("CovidFileIO/covid19-download.csv");
            readCSV.CreateDataObjects(100); // Pass in how many lines to read
            return readCSV.covidDataObjects;

   }
}

您可以在 startup.cs 中執行此操作

app.Run(CSVMiddleware);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM