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à đó StreamWriter
là 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
CsvWriter
tạo mất một lỗi ISerializer
và không thành công vì không có chuyển đổi. Nó nên chọn hàm CsvWriter
tạo lấy một TextWriter
, vì StreamWriter
thừ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).
StreamWriter
sangISerializer
?StreamWriter
là 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ể.