我有一个定义如下的接口:
public interface IClientFileImporter
{
bool CanImport(Stream stream);
int Import(Stream stream);
}
该想法是将任何文件流通过一系列实现此接口的实现来确定哪个实现应处理该文件。其中一些实现可能会查找特定的标题行,而其他实现则可能会查找特定的字节序列等等...
我的问题是,只要我从未关闭它,把流像这样传递是否可以?如果必要,每种方法都必须负责将流重置为位置0,但除了线程安全性之外还有其他潜在的问题吗?在我看来,这段代码真的很不好,但我不确定有更好的方法来解决它。