簡體   English   中英

為什么我不能從“System.IO.StreamWriter”轉換為“CsvHelper.ISerializer”?

[英]Why can't I convert from 'System.IO.StreamWriter' to 'CsvHelper.ISerializer'?

試圖將人們的內容寫入 CSV 文件,然后將其導出,但是我遇到了構建錯誤並且失敗了。 錯誤是:

cannot convert from 'System.IO.StreamWriter' to 'CsvHelper.ISerializer'

不知道為什么會發生這種情況,除非我確定我已經這樣做了很多次。

private void ExportAsCSV()
{
    using (var memoryStream = new MemoryStream())
    {
        using (var writer = new StreamWriter(memoryStream))
        {
            using (var csv = new CsvHelper.CsvWriter(writer))
            {
                csv.WriteRecords(people);
            }

            var arr = memoryStream.ToArray();
            js.SaveAs("people.csv",arr);
        }
    }
}

13.0.0 版發生了重大變化。 本地化存在很多問題,因此@JoshClose 要求用戶指定他們想要使用的CultureInfo 您現在需要在創建CsvReaderCsvWriter時包含CultureInfo https://github.com/JoshClose/CsvHelper/issues/1441

private void ExportAsCSV()
{
    using (var memoryStream = new MemoryStream())
    {
        using (var writer = new StreamWriter(memoryStream))
        {
            using (var csv = new CsvHelper.CsvWriter(writer, System.Globalization.CultureInfo.CurrentCulture)
            {
                csv.WriteRecords(people);
            }

            var arr = memoryStream.ToArray();
            js.SaveAs("people.csv",arr);
        }
    }
}

注意: CultureInfo.CurrentCulture是以前版本中的默認值。

考慮

  • CultureInfo.InvariantCulture - 如果您控制文件的寫入和讀取。 這樣,無論用戶在他的計算機上有什么文化,它都可以工作。
  • CultureInfo.CreateSpecificCulture("en-US") - 如果您需要它為特定文化工作,獨立於用戶的文化。

暫無
暫無

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

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