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 StreamWriter
la classe habituelle ( System.IO.StreamWriter
). Utilisez "Aller à la définition" CsvWriter
pour revérifier.
CsvWriter
constructeur qui prend un ISerializer
, et échoue car il n'y a pas de conversion. Il aurait dû choisir le CsvWriter
constructeur qui prend un TextWriter
, car il en StreamWriter
hé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
?StreamWriter
fait partie de .NET lui-même - il ne peut pas implémenter d'interfaces à partir d'un package tiers spécifique.