【发布时间】:2015-03-17 05:51:30
【问题描述】:
我正在编写一个将数据导出到 CSV 文件的类,它的构造函数接受一个 TextWriter。我使用 TextWriter 而不是 StreamWriter 的原因是它会使测试更容易:我可以使用相同的构造函数来写入 StreamWriter(写入文件,预期的用例)和写入 StringWriter (这对测试很有用)。
在我的构造函数中,我想对传入的 TextWriter 执行一些验证。问题是我似乎无法弄清楚如何检查 TextWriter 是打开还是关闭。如果 BaseStream 属性为空,则 StreamWriter 是可能的。但是 TextWriter 没有这个属性。还有其他方法可以检查 TextWriter 是否打开?
【问题讨论】:
-
我不认为你可以在不侵入私人领域的情况下做到这一点,但我也不认为这真的很重要。访问失败对您的情况来说并不是一个非常糟糕的情况,因为在常见情况下,您的类将用于在初始化后立即写入。
-
我写的类在初始化后不会马上写。该类有一个线程将在后台运行并在一段时间内继续写入,直到被告知停止。
标签: c# testing file-io textwriter