有谁知道.net 中的惰性流实现?IOW,我想创建一个这样的方法:
public Stream MyMethod() {
return new LazyStream(...whatever parameters..., delegate() {
... some callback code.
});
}
当我的其他代码调用 MyMethod() 以返回检索流时,它实际上不会执行任何工作,直到有人真正尝试从流中读取。通常的方法是让 MyMethod 将流参数作为参数,但这在我的情况下不起作用(我想将返回的流提供给 MVC FileStreamResult)。
为了进一步解释,我正在寻找的是创建一系列分层的转换,所以
数据库结果集=(转换为)=> 字节流=(链接到)=> GZipStream =(传递到)=> FileStreamResult 构造函数。
结果集可能很大 (GB),因此我不想将结果缓存在 MemoryStream 中,我可以将其传递给 GZipStream 构造函数。相反,我想在 GZipStream 请求数据时从结果集中获取。