-1

我有一个 XmlTextReader,并将它传递给 System.Net.ConnectStream。如果我进入调试器,我可以看到 ConnectStream 不支持 Length 属性,这会引发 NotSupportedException。

现在,我将 Stream 子类化并传入我的类的一个实例。我的课程还在 Length 的 get() 访问器上抛出 NotSupportedException,但是这次我的所有单元测试都失败并出现 NotSupportedException。

XmlTextReader 文档没有说它需要支持长度的流,并且它显然可以使用不需要的流 - 发生了什么?

(这是 .NET 3.5 客户端)

4

1 回答 1

2

如果 aStream从 中返回 true ,CanSeek则假定LengthSetLength和都受支持。一些代码可能会测试并使用结果来优化其行为 - 就像这里的情况一样。当您从. _PositionSeekCanSeektrueCanSeekLengthStream

如果您不能支持该Length物业,最好falseCanSeek.

于 2015-10-29T20:30:29.140 回答