C# 是否可以在不向前移动原始阅读器的情况下创建文本阅读器的副本?

C# 是否可以在不向前移动原始阅读器的情况下创建文本阅读器的副本?,c#,C#,我有一个TextReader,它是由一个黑盒系统创建的,因此我没有关于创建它的源文件的任何信息 我需要将这个文本阅读器传递回我在应用程序中创建的对象中的黑盒系统 但是,我需要从TextReader获取一些信息,以帮助创建我的对象 我知道你不能“倒带”一个文本阅读器,但有没有办法复制它,这样我就可以在不推进源文本阅读器的情况下读取并丢弃一个临时副本 我已经看过了,但我不确定这是否与我的要求有关 如果是这样的话,请有人详细说明一下,以便我能理解 提前感谢。好吧,有点像黑客,但你可以这样做,把整个文本

我有一个
TextReader
,它是由一个黑盒系统创建的,因此我没有关于创建它的源文件的任何信息

我需要将这个文本阅读器传递回我在应用程序中创建的对象中的黑盒系统

但是,我需要从TextReader获取一些信息,以帮助创建我的对象

我知道你不能“倒带”一个文本阅读器,但有没有办法复制它,这样我就可以在不推进源文本阅读器的情况下读取并丢弃一个临时副本

我已经看过了,但我不确定这是否与我的要求有关

如果是这样的话,请有人详细说明一下,以便我能理解


提前感谢。

好吧,有点像黑客,但你可以这样做,把整个文本放在一个字符串中,做你想做的,然后传回用你以前读过的字符串创建的。我希望黑匣子系统会像一个魔咒一样工作。

阅读意味着提高文本阅读器的阅读能力。如果您有一个临时副本,那么在不从源文本读取器读取数据的情况下,副本应该如何从源文本读取器获取数据?它不可能,因此我怀疑这是可能的。我想我想知道它是否可以在引擎盖下的内存中复制,而不是使用一种读取方法。它通常不能。设想一个读卡器不像一个对象,它包含所有数据,并在调用
Read
时输出数据。相反,读取器是一个对象,它知道在哪里可以找到数据,并在调用
Read
时从那里获取数据。同样,当前“位置”不是读取器的内部属性,而是数据源固有的东西(取决于读取器的类型)。