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 StreamWriterjest zwykła klasa ( System.IO.StreamWriter). Użyj „Idź do definicji”, CsvWriteraby dwukrotnie sprawdzić.
CsvWriterkonstruktor, który pobiera ISerializeri kończy się niepowodzeniem, ponieważ nie ma konwersji. Powinien był wybrać CsvWriterkonstruktor, który bierze TextWriter, ponieważ StreamWriterdziedziczy 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).
StreamWriterdoISerializer?StreamWriterjest częścią samego .NET - nie może implementować interfejsów z określonego pakietu innej firmy.