我需要为一个方法编写单元测试,该方法接受来自文本文件的流.我想做这样的事情:
Stream s = GenerateStreamFromString("a,b \n c,d");
Run Code Online (Sandbox Code Playgroud) 有谁知道.net中的延迟流实现?IOW,我想创建一个像这样的方法:
public Stream MyMethod() {
return new LazyStream(...whatever parameters..., delegate() {
... some callback code.
});
}
Run Code Online (Sandbox Code Playgroud)
当我的其他代码调用MyMethod()返回以检索流时,它实际上不会执行任何工作,除非有人实际尝试从该流中读取数据。通常的方法是使MyMethod将stream参数作为参数,但是在我的情况下不起作用(我想将返回的流提供给MVC FileStreamResult)。
为了进一步说明,我正在寻找的是创建一系列分层的转换,因此
数据库结果集=(已转换为)=>字节流=(已链接至)=> GZipStream =(已传递)=> FileStreamResult构造函数。
结果集可能很大(GB),所以我不想将结果缓存在MemoryStream中,可以将其传递给GZipStream构造函数。相反,我想在GZipStream请求数据时从结果集中获取。