Beim Versuch, den Inhalt von Personen in eine CSV-Datei zu schreiben und diese dann zu exportieren, wird jedoch ein Erstellungsfehler angezeigt, der fehlschlägt. Der Fehler ist:
cannot convert from 'System.IO.StreamWriter' to 'CsvHelper.ISerializer'
Ich bin mir nicht sicher, warum dies geschieht, es sei denn, ich bin mir sicher, dass ich es viele Male so gemacht habe.
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)
nicht im Geltungsbereich liegt. Stellen Sie sicher, dass Sie die richtige Version des Pakets erhalten, und das StreamWriter
ist die übliche Klasse ( System.IO.StreamWriter
). Verwenden Sie "Gehe zu Definition", um dies CsvWriter
zu überprüfen.
CsvWriter
Konstruktor aufruft, der eine benötigt ISerializer
, und fehlschlägt, da keine Konvertierung erfolgt. Es sollte den CsvWriter
Konstruktor ausgewählt haben, der a nimmt TextWriter
, da er davon StreamWriter
erbt, sodass entweder dieser Konstruktor fehlt (aus welchem Grund auch immer) oder die Überlastungsauflösung des Compilers fehlerhaft ist (etwas weniger wahrscheinlich, aber seltsamere Dinge sind passiert).
StreamWriter
zuISerializer
?StreamWriter
ist Teil von .NET selbst - es kann keine Schnittstellen von einem bestimmten Paket eines Drittanbieters implementieren.