有没有办法检查TextWriter是否已关闭?

时间:2015-03-17 05:51:31

标签: c# testing file-io textwriter

我正在编写一个将数据导出到CSV文件的类,其构造函数接受一个TextWriter。我使用TextWriter而不是StreamWriter的原因是它可以使测试更容易:我可以使用相同的构造函数来写入StreamWriter(写入文件,预期的用例)并写入一个StringWriter(对测试很有用)。

在我的构造函数中,我想对传入的TextWriter执行一些验证。问题是我似乎无法弄清楚如何检查TextWriter是打开还是关闭。如果BaseStream属性为null,则StreamWriter可能。但是,TextWriter没有此属性。还有另一种检查TextWriter是否打开的方法吗?

1 个答案:

答案 0 :(得分:-1)

您可以尝试这样:

if( writer.BaseStream != null)
{
   writer.WriteLine("Writer is open");
}
else
{
   MessageBox.Show ("Writer is closed");
}

,即如果BaseStream NULL ,则编写器已经处理完毕。

此外,建议您使用using块来处理此问题。