私は簡単なコードを持っています
byte[] buffer = Encoding.UTF8.GetBytes("abracadabra");
MemoryStream ms = new MemoryStream();
DeflateStream ds = new DeflateStream(ms, CompressionMode.Compress, false);
ms.Write(buffer, 0, buffer.Length);
DeflateStream ds2 = new DeflateStream(ms, CompressionMode.Decompress, false);
byte[] buffer2 = new byte[ms.Length];
ds2.Read(buffer2, 0, (int)ms.Length);
Console.WriteLine(Encoding.UTF8.GetString(buffer2));
そしてds2から読むとき、私は次のものを持っています:
スタックトレース:
at (ラッパーマネージからネイティブ) System.IO.Compression.DeflateStream.ReadZStream (intptr,intptr,int) <0x00004>
at (ラッパーマネージからネイティブ) System.IO.Compression.DeflateStream.ReadZStream (intptr,intptr,int) <0x00004>
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.3\mcs\class\System\System の System.IO.Compression.DeflateStream.ReadInternal (byte[],int,int) [0x00031] で。 IO.Compression\DeflateStream.cs:192
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.3\mcs\class\System\System の System.IO.Compression.DeflateStream.Read (byte[],int,int) [0x00086] で。 IO.Compression\DeflateStream.cs:214
C:\Users\ilukyanov\Desktop\Cassini\GZipDemo\Main.cs:27 の testtesttest.MainClass.Main (文字列[]) [0x00041] で
at (ラッパー ランタイム呼び出し) .runtime_invoke_void_object (オブジェクト、intptr、intptr、intptr)
このアプリケーションは、異常な方法で終了するようランタイムに要求しました。詳細については、アプリケーションのサポート チームにお問い合わせください。
この問題は、Mono 2.6.1 & 2.6.3 で発生します...
Mono で DeflateStream から正常に読み取る既知の方法はありますか? それとも、同じ機能を持つサードパーティのオープンソース アセンブリがいくつかあるのでしょうか?