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

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

概述我有一个接口定义为: 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. 总结

以上是内存溢出为你收集整理的c# – 将流传递到多个方法可以吗?全部内容,希望文章能够帮你解决c# – 将流传递到多个方法可以吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1259528.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存