尝试将人们的内容写入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本身的一部分-它无法通过特定的第三方程序包实现接口。