How do I create a csv-file in memory and return it as FileStreamResult
?
I tried to write to a memorystream
and then return it with FileStreamResult
but I always get the error ObjectDisposedException: Cannot access a closed Stream.
. I tried setting leaveopen
to true and disposing manually like told here but i still get the same error.
[HttpGet]
public FileStreamResult GetData()
{
var myResult = DataGetter.GetData().ToList();
using var memStream = new MemoryStream();
var writer = new StreamWriter(memStream, Encoding.UTF8, 1024, true);
var csv = new CsvWriter(writer, CultureInfo.InvariantCulture,true);
csv.WriteRecords(myResult );
var fileStreamResult = new FileStreamResult(memStream, "text/csv");
csv.Dispose();
writer.Dispose();
return fileStreamResult;
}
> than a stream.
– jdweng Jun 22 '21 at 15:46