是否有System.IO.Stream的接口?

时间:2009-04-27 19:49:24

标签: c# mono

我正在编写一个需要接受一个对象的类,记录它的当前状态,更新该对象,并将其传递给另一个类。唯一的问题是你只能从一个类继承而我需要在我的项目中继承一个类。我对System.IO.Stream感兴趣,因为我可以根据需要将此类移动到它自己的线程,而不是大多数套接字和IPC的其他方法。主要问题是,是否存在System.IO.Stream的接口?如果没有,有没有办法获得我想要的功能而不牺牲我依赖的项目关键数据? (我很抱歉,如果我听起来有点不连贯,我真的不确定如何说出这个问题。)

3 个答案:

答案 0 :(得分:5)

听起来IEnumerable<T>更适合 - 流适合传递 bytes ,但迭代器适用于表示更一般的对象流。

您需要从流(例如套接字)读取的内容和创建的对象,可能使用C#迭代器块(yield语句等)。然后,您可以在IEnumerable<T>上使用处理函数,过滤器等,稍后将其回放到套接字(或其他字节流)中。

要回答这个问题 - 不,Stream没有界面,但不清楚与问题的线程部分有多相关。你是否对async IO感兴趣?

答案 1 :(得分:1)

为什么要为Stream提供界面?实现接口不会为您提供类中的任何功能,它只会让其他类知道您提供该功能。如果你的REALL真的需要有多个继承(两个基类以便你可以从两者获得这些功能),你可以拥有你的基类,你明确需要的基类,是Stream本身的子类

public class MyObject : Base Object
{

}

public class BaseObject : Stream
{

}

等。?

mroe背景/背景可能会有所帮助。

答案 2 :(得分:0)

要弄清楚你在这里要做什么真的很难。

这听起来像是继承聚合的候选者。 而不是扩展System.IO.Stream,为什么不将一个传递给要使用的对象?这可以作为属性或get / set方法,如果将对象传递给另一个线程,则流随之而来。