0

我的问题已经在 WP7 上的 Application.GetResourceStream 返回的发布底层流中被问到了,但我对这个问题有几个变体:

  1. 这适用于桌面 WPF 应用程序,而不是 WP7,如果它有任何区别的话。
  2. 我必须决定是否using在构建在流之上的流阅读器上使用块。

这是一些代码:

System.Windows.Resources.StreamResourceInfo ri = 
   App.GetResourceStream(new Uri("Resources/Idioms.txt", UriKind.Relative));
using (System.IO.StreamReader sr = new System.IO.StreamReader(ri.Stream))
{
   idioms = sr.ReadToEnd().Split(lineSeps, StringSplitOptions.RemoveEmptyEntries);
}

现在 StreamReader 的 close 方法(我假设它是实现的方法IDisposable.Dispose)表明它也关闭了底层流(我假设它也在实现IDisposable.Dispose)。

关闭或处置IO.StreamGetResourceStream' 的Stream属性提供的对象也是如此:

  1. 预期的
  2. 可接受,或
  3. 不正确

using(我应该在流顶部构建的阅读器上使用还是避免使用?)

4

1 回答 1

1

StreamReader的 ctor 有一个重载,可让您告诉它不要关闭流。

另外,你有一点倒退(除非我误解了)。这Dispose是调用的方法Close,而不是相反。

于 2013-01-02T00:15:06.303 回答