前端之家收集整理的这篇文章主要介绍了
c# – 将流传递到多个方法可以吗?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个接口定义为:
public interface IClientFileImporter
{
bool CanImport(Stream stream);
int Import(Stream stream);
}
这个想法是采取任何文件流,并通过该接口的一系列实现来运行它,以确定哪个文件应该处理该文件.一些实现可以寻找某个标题行,而其他的可能寻找某个字节序列等…
我的问题是,只要我没有关闭它,可以像这样传递一个流?如果需要,每个方法都必须负责将流重置为位置0,但还有其他潜在的问题(除了线程安全性)?这个代码真的闻起来,海事组织,但我不知道一个更好的方法来做到这一点.
为了防止基础流被
修改,请创建一个从Stream派生的包装流,并将仅转发到包装流的安全
调用.另外,不要假定Import / CanImport
方法重新设置流的位置.这些
方法的
调用者应将该流重置为有效状态,然后再将其传送到Import / CanImport.
原文链接:https://www.f2er.com/csharp/94834.html