System.IO.Packaging.Package
Web サーバーから受け取った を解凍しようとしています。つまり、私はSystem.IO.Packaging.Package.Open(Stream)
メソッドを使用し、それを a の応答ストリームに渡していSystem.Net.HttpWebResponse
ます。残念ながら、これによりSystem.ArgumentException
、
シークをサポートしていない [a] ストリームでは操作できません。
参照ソースを見ると、内部クラスを使用する唯一の実装としてSystem.IO.Packaging.Package
使用されていることがわかります。そして案の定、 my からの応答ストリームの場合、メソッドは588 行目でこの例外を発生させます。System.IO.Packaging.ZipPackage
ZipArchive
ValidateModeAccessStreamStreamingCombinations()
stream.CanSeek
false
HttpWebResponse
streaming
ただし、どうやら常にであり、メソッドfalse
から までずっと渡される魔法のパラメータがあります。Package.Open()
ValidateModeAccessStreamStreamingCombinations()
だからここに私の質問があります:シーク不可能なストリームからオンザフライでPackage.Open(Stream)
構築するために使用する方法はありますか? Package
または、ストリームのコンテンツをどこかにキャッシュする必要がありMemoryStream
ますか? (アンパックしたパッケージストリームには興味がないので、本当にやりたくありません。)