传递内存流给另一个类如何关闭它

  • 本文关键字:何关闭 另一个 内存 c#
  • 更新时间 :
  • 英文 :


我有一个单独的类来创建CSV文件并将其添加到内存流和一个单独的类来发送文件(将其上传到云存储)我这样做是因为这是两个不同的工作,这是创建内存流的类:

public MemoryStream ExecuteUseCase(Myclass listOfStudents)
{
var memoryStream = new MemoryStream();
var streamWriter = new StreamWriter(memoryStream);
var csvWriter = new CsvWriter(streamWriter, CultureInfo.InvariantCulture);           
csvWriter.WriteRecords(listOfStudents.FileBody);
streamWriter.Flush();
memoryStream.Position = 0;
return memoryStream;              
}
}


你可以看到,我已经从块中删除了using因为如果我在这里添加using,它们将关闭流并且在另一个类中无法访问,这是我的第二个类:

var memoryStream = this.convertToCsv.ExecuteUseCase(file);
await blobClient.UploadAsync(memoryStream, true);

this approach works, but my only concern is the memoryStream disposal, how to close it? Or do I need even? 

在使用它的类中使用

using(var memoryStream = this.convertToCsv.ExecuteUseCase(file)){
await blobClient.UploadAsync(memoryStream, true);
}

最新更新