พยายามเขียนเนื้อหาของผู้คนไปยังไฟล์ CSV แล้วส่งออกมันอย่างไรก็ตามฉันได้รับข้อผิดพลาดของบิลด์และความล้มเหลว ข้อผิดพลาดคือ:
cannot convert from 'System.IO.StreamWriter' to 'CsvHelper.ISerializer'
ไม่แน่ใจว่าทำไมสิ่งนี้ถึงเกิดขึ้นนอกเสียจากว่าฉันแน่ใจว่าฉันทำแบบนี้มาหลายครั้ง
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);
}
}
}
คำแนะนำ
—
Jeroen Mostert
CsvHelper.CsvWriter(TextWriter)นี้ไม่ได้อยู่ในขอบเขต ตรวจสอบอีกครั้งว่าคุณได้รับแพ็คเกจที่StreamWriterถูกต้องและเป็นคลาสปกติ ( System.IO.StreamWriter) ใช้ "ไปที่คำจำกัดความ" CsvWriterเพื่อตรวจสอบอีกครั้ง
@JeroenMostert คุณหมายถึงตรวจสอบ csvWriter หรือไม่ ฉันทำและเป็นของคลาส CSVhelper ซึ่งใช้การใช้ CsvHelper.Configuration ใช้ CsvHelper.TypeConversion; ใช้ระบบ ใช้ System.Collections; ใช้ System.Collections.Generic; ใช้ System.Dynamic; ใช้ System.Globalization ใช้ System.IO; ใช้ System.Threading.Tasks;
—
Andy Stav
ใช่ แต่สิ่งที่คอมไพเลอร์บอกคุณคือมีการเรียก
—
Jeroen Mostert
CsvWriterConstructor ที่รับISerializerและล้มเหลวเนื่องจากไม่มีการแปลง มันควรเลือกCsvWriterนวกรรมิกที่รับTextWriterเนื่องจากตั้งแต่StreamWriterสืบทอดดังนั้นคอนสตรัคเตอร์นั้นจะหายไป (ไม่ว่าจะด้วยเหตุผลใดก็ตาม) หรือการแก้ไขโอเวอร์โหลดของคอมไพเลอร์เสีย (มีโอกาสน้อยลง
StreamWriterเป็นISerializer?StreamWriterเป็นส่วนหนึ่งของ. NET - มันไม่สามารถใช้อินเทอร์เฟซจากแพ็คเกจของบุคคลที่สามที่เฉพาะเจาะจงได้