Cố gắng viết nội dung của mọi người vào CSVfile và sau đó xuất nó, tuy nhiên tôi đang gặp lỗi xây dựng và nó không thành công. lỗi là:
cannot convert from 'System.IO.StreamWriter' to 'CsvHelper.ISerializer'
Không chắc chắn tại sao điều này xảy ra trừ khi tôi chắc chắn tôi đã thực hiện nó theo cách này rất nhiều lần.
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);
}
}
}
Điều này cho thấy
—
Jeroen Mostert
CsvHelper.CsvWriter(TextWriter)không có trong phạm vi. Kiểm tra kỹ xem bạn có nhận đúng phiên bản của gói không, và đó StreamWriterlà lớp thông thường ( System.IO.StreamWriter). Sử dụng "Chuyển đến Định nghĩa" trên CsvWriterđể kiểm tra lại.
@JeroenMostert bạn có ý kiểm tra csvWriter không? tôi đã làm và nó thuộc về lớp CSVrcper sử dụng CsvHelper.Configuration; sử dụng CsvHelper.TypeConversion; sử dụng hệ thống; sử dụng System.Collections; sử dụng System.Collections.Generic; sử dụng System.Docate; sử dụng System.Globalization; sử dụng System.IO; sử dụng System.Threading.T Nhiệm vụ;
—
Andy Stav
Có, nhưng điều mà trình biên dịch đang nói với bạn là nó đang gọi hàm
—
Jeroen Mostert
CsvWritertạo mất một lỗi ISerializervà không thành công vì không có chuyển đổi. Nó nên chọn hàm CsvWritertạo lấy một TextWriter, vì StreamWriterthừa hưởng từ đó, vì vậy hoặc hàm tạo đó bị thiếu (vì bất kỳ lý do gì) hoặc độ phân giải quá tải của trình biên dịch bị phá vỡ (ít có thể xảy ra hơn, nhưng những điều kỳ lạ hơn đã xảy ra).
StreamWritersangISerializer?StreamWriterlà một phần của chính .NET - nó không thể triển khai các giao diện từ gói bên thứ ba cụ thể.