사람들의 내용을 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);
}
}
}
이것은
—
Jeroen Mostert
CsvHelper.CsvWriter(TextWriter)
범위 내에 있지 않다는 것을 나타냅니다 . 올바른 버전의 패키지를 받고 있는지 확인하십시오. 이것이 StreamWriter
일반적인 클래스 ( System.IO.StreamWriter
)입니다. "정의로 이동"을 사용 CsvWriter
하여 다시 확인하십시오.
@JeroenMostert csvWriter를 확인 하시겠습니까? 내가 그랬고 CsvHelper.Configuration을 사용하는 CSVhelper 클래스에 속합니다. CsvHelper.TypeConversion 사용; 시스템 사용; System.Collections 사용; System.Collections.Generic 사용; System.Dynamic 사용; System.Globalization 사용; System.IO 사용; System.Threading.Tasks 사용;
—
Andy Stav
그렇습니다. 그러나 컴파일러가 말한
—
Jeroen Mostert
CsvWriter
것은을 취하는 생성자를 호출하고 ISerializer
변환이 없기 때문에 실패 한다는 것입니다 . 그것은 포착해야 CsvWriter
소요 생성자 TextWriter
때문에 StreamWriter
(어떤 이유) 그래서 하나의 생성자가없는 것으로, 그에서 상속 또는 컴파일러의 과부하 해상도가 고장 (조금 덜 가능성을하지만, 별난 일들이 일어난).
StreamWriter
에ISerializer
?StreamWriter
.NET 자체의 일부입니다. 특정 타사 패키지의 인터페이스를 구현할 수 없습니다.