พยายามเขียนเนื้อหาของผู้คนไปยังไฟล์ 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
CsvWriter
Constructor ที่รับISerializer
และล้มเหลวเนื่องจากไม่มีการแปลง มันควรเลือกCsvWriter
นวกรรมิกที่รับTextWriter
เนื่องจากตั้งแต่StreamWriter
สืบทอดดังนั้นคอนสตรัคเตอร์นั้นจะหายไป (ไม่ว่าจะด้วยเหตุผลใดก็ตาม) หรือการแก้ไขโอเวอร์โหลดของคอมไพเลอร์เสีย (มีโอกาสน้อยลง
StreamWriter
เป็นISerializer
?StreamWriter
เป็นส่วนหนึ่งของ. NET - มันไม่สามารถใช้อินเทอร์เฟซจากแพ็คเกจของบุคคลที่สามที่เฉพาะเจาะจงได้