我正在尝试解压缩System.IO.Packaging.Package
从 Web 服务器收到的内容。也就是说,我正在使用该System.IO.Packaging.Package.Open(Stream)
方法并将其传递给System.Net.HttpWebResponse
. 不幸的是,这引发了一个System.ArgumentException
告诉我它
无法对不支持搜索的 [a] 流进行操作。
查看参考源,结果发现System.IO.Packaging.Package
它System.IO.Packaging.ZipPackage
用作其唯一的实现,而后者又使用内部ZipArchive
类。果然,ValidateModeAccessStreamStreamingCombinations()
如果stream.CanSeek
来自false
my HttpWebResponse
.
然而,有一个神奇的streaming
参数,显然,总是false
从Package.Open()
方法一直传递到ValidateModeAccessStreamStreamingCombinations()
.
所以这是我的问题:有什么方法可以用来从不可搜索的流中动态Package.Open(Stream)
构建一个?Package
或者我是否必须在某处缓存流内容,例如在MemoryStream
?(我真的不想这样做,因为一旦我解包它,我就对包流不感兴趣。)