Sto cercando di scrivere il contenuto delle persone in un file CSV e quindi esportarlo, tuttavia sto riscontrando un errore di compilazione e il suo fallimento. l'errore è:
cannot convert from 'System.IO.StreamWriter' to 'CsvHelper.ISerializer'
Non sono sicuro del perché questo accada a meno che, come sono sicuro, non l'abbia fatto in questo modo un sacco di volte.
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);
}
}
}
CsvHelper.CsvWriter(TextWriter)
non rientra nell'ambito di applicazione. Ricontrolla che stai ricevendo la versione corretta del pacchetto e che StreamWriter
è la solita classe ( System.IO.StreamWriter
). Utilizzare "Vai a definizione" CsvWriter
per ricontrollare.
CsvWriter
costruttore che lo prende ISerializer
e fallisce perché non c'è conversione. Avrebbe dovuto scegliere il CsvWriter
costruttore che prende un TextWriter
, poiché StreamWriter
eredita da quello, quindi o quel costruttore è mancante (per qualsiasi motivo) o la risoluzione di sovraccarico del compilatore è rotta (un po 'meno probabile, ma sono successe cose più strane).
StreamWriter
inISerializer
?StreamWriter
fa parte di .NET stesso: non può implementare interfacce da un pacchetto di terze parti specifico.