J'essaie d'écrire le contenu de personnes dans un fichier CSV, puis de l'exporter, mais je reçois une erreur de génération et son échec. l'erreur est:
cannot convert from 'System.IO.StreamWriter' to 'CsvHelper.ISerializer'
Je ne sais pas pourquoi cela se produit, à moins que je sois certain de l'avoir fait de cette façon de nombreuses fois.
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)n'est pas dans la portée. Vérifiez que vous obtenez la bonne version du package, et c'est StreamWriterla classe habituelle ( System.IO.StreamWriter). Utilisez "Aller à la définition" CsvWriterpour revérifier.
CsvWriterconstructeur qui prend un ISerializer, et échoue car il n'y a pas de conversion. Il aurait dû choisir le CsvWriterconstructeur qui prend un TextWriter, car il en StreamWriterhérite, donc soit ce constructeur est manquant (pour une raison quelconque) soit la résolution de surcharge du compilateur est cassée (un peu moins probable, mais des choses plus étranges se sont produites).
StreamWriteràISerializer?StreamWriterfait partie de .NET lui-même - il ne peut pas implémenter d'interfaces à partir d'un package tiers spécifique.