在 运行 时间从外部更改 csv 文件,但没有看到任何效果

Change csv file externally on run time, and doesn't see any effect

我有一个从 csv 文件读取的方法。 由于正在使用,流 reader 正在关闭。

我在外部更改了 csv 文件(只需在 Visual studio,修改一些文字,保存。

我在使用结束后更改了文件。 这意味着现在应该处理该流。

然后再次调用相同的方法,但由于某种原因, 我只得到旧数据。更改没有效果..

为什么我没有得到新数据?

这是代码:

    public async override Task<List<StockData>> GetListOfStockDataFromSource( )
    {
        using (StreamReader streamReader = new StreamReader(_csvFileName))
        using (CsvReader csvReader = new CsvReader(streamReader,CultureInfo.CurrentCulture))
        {
            csvReader.Configuration.RegisterClassMap<CsvSourceMap>();
            List<StockData> stocksAsList = csvReader.GetRecords<StockData>().ToList();

            return stocksAsList;
        }
    }
}

Visual Studio 中的 copy to output directory 选项仅在构建/重建项目时复制文件。

如果您想在不重建的情况下更改文件,您需要更改应用程序输出目录中的文件(通常 bin/{runtimeversion})。但请注意,这些更改将在下一次重建时被覆盖。

另一种选择是使用可以作为可选启动参数传递的文件路径。因此,在您的启动设置中,您可以在调试时指向解决方案目录中的文件,而您部署的应用程序默认使用应用程序目录中的文件。