Mencoba menulis konten orang ke CSVfile dan kemudian mengekspornya, namun saya mendapatkan galat build dan kegagalannya. kesalahannya adalah:
cannot convert from 'System.IO.StreamWriter' to 'CsvHelper.ISerializer'
Tidak yakin mengapa ini terjadi kecuali karena saya yakin saya telah melakukannya dengan cara ini berkali-kali.
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);
}
}
}
Ini menunjukkan
—
Jeroen Mostert
CsvHelper.CsvWriter(TextWriter)
tidak dalam ruang lingkup. Periksa kembali apakah Anda mendapatkan versi paket yang benar, dan itu StreamWriter
adalah kelas biasa ( System.IO.StreamWriter
). Gunakan "Pergi ke Definisi" CsvWriter
untuk mengecek.
@ JoeroenMostert maksud Anda untuk memeriksa csvWriter? saya lakukan dan itu milik kelas CSVhelper yang menggunakan menggunakan CsvHelper.Configuration; menggunakan CsvHelper.TypeConversion; menggunakan Sistem; menggunakan System.Collections; menggunakan System.Collections.Generic; menggunakan System.Dynamic; menggunakan System.Globalisasi; menggunakan System.IO; menggunakan System.Threading.Tasks;
—
Andy Stav
Ya, tetapi apa yang dikatakan kompiler adalah Anda memanggil
—
Jeroen Mostert
CsvWriter
konstruktor yang membutuhkan ISerializer
, dan gagal karena tidak ada konversi. Seharusnya memilih CsvWriter
konstruktor yang mengambil a TextWriter
, karena StreamWriter
mewarisi dari itu, sehingga konstruktor itu hilang (untuk alasan apa pun) atau resolusi kelebihan kompiler rusak (sedikit kurang mungkin, tetapi hal-hal aneh telah terjadi).
StreamWriter
keISerializer
?StreamWriter
adalah bagian dari .NET itu sendiri - tidak dapat mengimplementasikan antarmuka dari paket pihak ketiga tertentu.