gpt4 book ai didi

c# - System.ObjectDisposedException。处理流编写器的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-02 04:49:40 25 4
gpt4 key购买 nike

这是我的代码,不言自明。 using block 终止后 - output 变量被释放。为什么?我想从函数中返回它,处置 StreamWriter 但返回我的对象​​的正确方法是什么?

public static Stream Write(Interchange interchange)
{
var output = new MemoryStream();
using (TextWriter writer = new StreamWriter(output))
{
foreach (var rawSegment in GetRawSegments(interchange))
{
writer.Write(rawSegment.ToString(interchange.ElementDelimeter, interchange.SegmentTerminator));
}

writer.Flush();
}

return output;
}

最佳答案

有一个constructor for StreamWriter它允许您通过 bool 指定不关闭底层 Stream:

using (TextWriter writer = new StreamWriter(output, Encoding.UTF8, 1024, true))
{

请注意,您可能还想在返回之前将 MemoryStream 的位置重置为零,具体取决于它的使用方式。

关于c# - System.ObjectDisposedException。处理流编写器的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19105829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com