Próbuję zapisać zawartość osób w pliku CSV, a następnie wyeksportować go, jednak pojawia się błąd kompilacji i jego błąd. błąd jest następujący:
cannot convert from 'System.IO.StreamWriter' to 'CsvHelper.ISerializer'
Nie jestem pewien, dlaczego tak się dzieje, chyba że jestem pewien, że robiłem to w ten sposób wiele razy.
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)
to, że nie jest objęty zakresem. Dokładnie sprawdź, czy otrzymujesz odpowiednią wersję pakietu, i to StreamWriter
jest zwykła klasa ( System.IO.StreamWriter
). Użyj „Idź do definicji”, CsvWriter
aby dwukrotnie sprawdzić.
CsvWriter
konstruktor, który pobiera ISerializer
i kończy się niepowodzeniem, ponieważ nie ma konwersji. Powinien był wybrać CsvWriter
konstruktor, który bierze TextWriter
, ponieważ StreamWriter
dziedziczy po tym, więc albo tego konstruktora brakuje (z jakiegokolwiek powodu), albo rozdzielczość przeciążenia kompilatora jest zepsuta (trochę mniej prawdopodobne, ale dziwniejsze rzeczy się zdarzyły).
StreamWriter
doISerializer
?StreamWriter
jest częścią samego .NET - nie może implementować interfejsów z określonego pakietu innej firmy.