2
CsvHelperにいくつかの問題があり、メモリストリームに書き込んでいます。私はストリームの作家をフラッシュし、位置を設定しようとした他のすべてを試した。私はそれを明らかに失敗した本当に簡単なテストケースに絞り込んだと思います。私はここで間違って何をしていますか?CsvHelperがメモリストリームにデータを書き込んでいない
public OutputFile GetTestFile()
{
using (var ms = new MemoryStream())
using (var sr = new StreamWriter(ms))
using (var csv = new CsvWriter(sr))
{
csv.WriteField("test");
sr.Flush();
return new OutputFile
{
Data = ms.ToArray(),
Length = ms.Length,
DataType = "text/csv",
FileName = "test.csv"
};
}
}
[TestMethod]
public void TestWritingToMemoryStream()
{
var file = GetTestFile();
Assert.IsFalse(file.Data.Length == 0);
}
この訂正されたコードが実際にテストに合格するため、正解を編集します。私はStringWriterに書き込んでバイトに変換することで、狂ったような問題を解決するのはなぜか分かりませんが、今は動作します。
今csv.WriteField("test");
csv.NextRecord();
sr.Flush();
、memstreamを持っている必要があります。CSVHelper
以来
using (var sw = new StringWriter())
using (var csvWriter = new CsvWriter(sw, config))
{
csvWriter.WriteRecords(records);
return Encoding.UTF8.GetBytes(sw.ToString());
}