Tentando gravar o conteúdo das pessoas em um arquivo CSV e exportá-lo, no entanto, estou recebendo um erro de compilação e sua falha. o erro é:
cannot convert from 'System.IO.StreamWriter' to 'CsvHelper.ISerializer'
Não sei por que isso está acontecendo, a menos que tenha certeza de que já fiz dessa maneira várias vezes.
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);
}
}
}
Isso sugere que
—
Jeroen Mostert 17/01
CsvHelper.CsvWriter(TextWriter)
não está no escopo. Verifique se você está obtendo a versão correta do pacote, e essa StreamWriter
é a classe usual ( System.IO.StreamWriter
). Use "Ir para definição" CsvWriter
para verificar novamente.
@JeroenMostert você quis verificar csvWriter? eu fiz e pertence à classe CSVhelper que usa usando CsvHelper.Configuration; using CsvHelper.TypeConversion; using System; using System.Collections; using System.Collections.Generic; using System.Dynamic; using System.Globalization; using System.IO; using System.Threading.Tasks;
—
Andy Stav 17/01
Sim, mas o que o compilador está dizendo é que ele está invocando o
—
Jeroen Mostert
CsvWriter
construtor que recebe uma ISerializer
e está falhando, pois não há conversão. Deveria ter escolhido o CsvWriter
construtor que leva a TextWriter
, já que o StreamWriter
herda, para que o construtor esteja ausente (por qualquer motivo) ou a resolução de sobrecarga do compilador seja quebrada (um pouco menos provável, mas coisas mais estranhas aconteceram).
StreamWriter
paraISerializer
?StreamWriter
faz parte do próprio .NET - não pode implementar interfaces de um pacote de terceiros específico.