加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 将流传递到多个方法可以吗?

发布时间:2020-12-15 06:44:08 所属栏目:百科 来源:网络整理
导读:我有一个接口定义为: public interface IClientFileImporter{ bool CanImport(Stream stream); int Import(Stream stream);} 这个想法是采取任何文件流,并通过该接口的一系列实现来运行它,以确定哪个文件应该处理该文件.一些实现可以寻找某个标题行,而其他
我有一个接口定义为:
public interface IClientFileImporter
{
    bool CanImport(Stream stream);
    int Import(Stream stream);
}

这个想法是采取任何文件流,并通过该接口的一系列实现来运行它,以确定哪个文件应该处理该文件.一些实现可以寻找某个标题行,而其他的可能寻找某个字节序列等…

我的问题是,只要我没有关闭它,可以像这样传递一个流?如果需要,每个方法都必须负责将流重置为位置0,但还有其他潜在的问题(除了线程安全性)?这个代码真的闻起来,海事组织,但我不知道一个更好的方法来做到这一点.

解决方法

为了防止基础流被修改,请创建一个从Stream派生的包装流,并将仅转发到包装流的安全调用.另外,不要假定Import / CanImport方法重新设置流的位置.这些方法的调用者应将该流重置为有效状态,然后再将其传送到Import / CanImport.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读