尝试将人们的内容写入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);
}
}
}
这表明
—
Jeroen Mostert
CsvHelper.CsvWriter(TextWriter)不在范围内。仔细检查您是否获得了正确的软件包版本,这StreamWriter是通常的类(System.IO.StreamWriter)。使用“转到定义” CsvWriter仔细检查。
@JeroenMostert您的意思是检查csvWriter吗?我做了,它属于使用CsvHelper.Configuration使用的CSVhelper类;使用CsvHelper.TypeConversion; 使用系统;使用System.Collections; 使用System.Collections.Generic; 使用System.Dynamic; 使用System.Globalization; 使用System.IO; 使用System.Threading.Tasks;
—
安迪·斯塔夫
是的,但是编译器告诉您的是,它正在调用采用的
—
Jeroen Mostert
CsvWriter构造函数ISerializer,并且由于没有转换而失败。它应该选择CsvWriter一个采用的构造函数TextWriter,因为它StreamWriter继承自,所以要么该构造函数丢失(无论出于何种原因),要么编译器的重载解析被破坏(可能性较小,但发生了更奇怪的事情)。
StreamWriter为ISerializer?StreamWriter是.NET本身的一部分-它无法通过特定的第三方程序包实现接口。