我使用的要求我提供一個實現此接口的對象庫:有沒有在內存流,像一個文件流塊
public interface IConsole {
TextWriter StandardInput { get; }
TextReader StandardOutput { get; }
TextReader StandardError { get; }
}
對象的讀者則習慣於通過與圖書館:
IConsole console = new MyConsole();
int readBytes = console.StandardOutput.Read(buffer, 0, buffer.Length);
通常實施IConsole類具有StandardOutput流作爲從一個外部進程來。在這種情況下,console.StandardOutput.Read調用通過阻塞工作,直到有一些數據寫入StandardOutput流。
我想要做的是創建一個測試IConsole實現,使用MemoryStreams和echo的任何出現在StandardInput上的回到StandardInput。我想:
MemoryStream echoOutStream = new MemoryStream();
StandardOutput = new StreamReader(echoOutStream);
但是與該問題是console.StandardOutput.Read將返回0,而不是塊,直到有一些數據。無論如何,我可以得到一個MemoryStream來阻止,如果沒有可用的數據或者我可以使用的內存流中有不同的?
您確實不應該從輸出流中讀取數據。 – 2009-09-25 06:39:59