Intento escribir el contenido de las personas en un archivo CSV y luego exportarlo, sin embargo, recibo un error de compilación y falla. el error es:
cannot convert from 'System.IO.StreamWriter' to 'CsvHelper.ISerializer'
No estoy seguro de por qué sucede esto a menos que esté seguro de que lo he hecho de esta manera muchas veces.
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);
}
}
}
Esto sugiere
—
Jeroen Mostert
CsvHelper.CsvWriter(TextWriter)
que no está en el alcance. Verifique que esté obteniendo la versión correcta del paquete, y esa StreamWriter
es la clase habitual ( System.IO.StreamWriter
). Use "Ir a definición" CsvWriter
para verificar dos veces.
@JeroenMostert, ¿querías comprobar csvWriter? lo hice y pertenece a la clase CSVhelper que usa CsvHelper.Configuration; usando CsvHelper.TypeConversion; utilizando el sistema; usando System.Collections; usando System.Collections.Generic; usando System.Dynamic; usando System.Globalization; usando System.IO; usando System.Threading.Tasks;
—
Andy Stav
Sí, pero lo que el compilador le está diciendo es que está invocando al
—
Jeroen Mostert
CsvWriter
constructor que toma un ISerializer
, y falla ya que no hay conversión. Debería haber elegido el CsvWriter
constructor que toma un TextWriter
, ya que StreamWriter
hereda de eso, por lo que falta ese constructor (por cualquier razón) o la resolución de sobrecarga del compilador está rota (un poco menos probable, pero han sucedido cosas más extrañas).
StreamWriter
aISerializer
?StreamWriter
es parte de .NET en sí mismo: no puede implementar interfaces desde un paquete de terceros específico.