Пытаясь записать содержимое людей в 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 - он не может реализовывать интерфейсы из определенного стороннего пакета.