Пытаясь записать содержимое людей в 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);
}
}
}
Это говорит о том, что
—
Йерун Мостерт
CsvHelper.CsvWriter(TextWriter)
это не входит в сферу. Дважды проверьте, что вы получаете правильную версию пакета, и это StreamWriter
обычный класс ( System.IO.StreamWriter
). Используйте «Перейти к определению», CsvWriter
чтобы перепроверить.
@JeroenMostert Вы хотели проверить csvWriter? я сделал, и он принадлежит к классу CSVhelper, который использует использование CsvHelper.Configuration; using CsvHelper.TypeConversion; используя Систему; использование System.Collections; using System.Collections.Generic; используя System.Dynamic; используя System.Globalization; использование System.IO; использование System.Threading.Tasks;
—
Энди Став
Да, но компилятор говорит вам, что он вызывает
—
Йерун Мостерт
CsvWriter
конструктор, который принимает ISerializer
, и терпит неудачу, поскольку нет преобразования. Он должен был выбрать CsvWriter
конструктор, который принимает TextWriter
, поскольку StreamWriter
наследует от него, так что либо этот конструктор отсутствует (по какой-либо причине), либо разрешение перегрузки компилятора нарушено (немного менее вероятно, но произошли более странные вещи).
StreamWriter
вISerializer
?StreamWriter
является частью самого .NET - он не может реализовывать интерфейсы из определенного стороннего пакета.