c# - 为什么我不能从“System.IO.StreamWriter”转换为“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
他们想要使用的内容。您现在需要CultureInfo
在创建时包括CsvReader
和CsvWriter
。 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")
- 如果您需要它为特定文化工作,独立于用户的文化。
推荐阅读
- javascript - The result is not a number
- visual-studio-code - 无法在只读编辑器 VS Code 中编辑
- javascript - 在 for 循环中打破 Promise 链
- mysql - MySQL没有结果,因为外键是NULL
- javascript - flickr api - 使用 JSONP 获取照片
- c# - c#登录表单(从注册表单获取信息)
- javascript - 使用流结束 NodeJS 程序
- vba - MSHTML.HTMLDocument 中的“getElementsByClassName”问题
- c# - 在将更多表聚合为一张的同时建立关系
- python - 递归立方体法