Намагаюся записати вміст людей на CSVfile, а потім експортувати його, однак я отримую помилку збірки та її збій. помилка:
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; використання CsvHelper.TypeConversion; за допомогою системи; за допомогою System.Collections; використовуючи System.Collections.Generic; за допомогою System.Dynamic; використання System.Globalization; за допомогою System.IO; використання System.Threading.Tasks;
—
Енді Став
Так, але те, що говорить вам компілятор, це те, що він викликає
—
Єроен Мостерт
CsvWriter
конструктор, який приймає ISerializer
, і не працює, оскільки немає перетворення. Він повинен був обрати CsvWriter
конструктор, який приймає TextWriter
, оскільки він StreamWriter
успадковує його, тому або той конструктор відсутній (з будь-якої причини), або роздільна здатність компілятора порушена (трохи менш вірогідні, але більш дивні речі відбулися).
StreamWriter
вISerializer
?StreamWriter
є частиною самого .NET - він не може реалізовувати інтерфейси з певного стороннього пакету.