J'ai un code simple
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));
Et lors de la lecture de ds2, j'ai ce qui suit:
Stacktrace:
at (wrapper managed-to-native) System.IO.Compression.DeflateStream.ReadZStream (intptr,intptr,int) <0x00004>
at (wrapper managed-to-native) System.IO.Compression.DeflateStream.ReadZStream (intptr,intptr,int) <0x00004>
at System.IO.Compression.DeflateStream.ReadInternal (byte[],int,int) [0x00031] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.3\mcs\class\System\System.IO.Compression\DeflateStream.cs:192
at System.IO.Compression.DeflateStream.Read (byte[],int,int) [0x00086] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.3\mcs\class\System\System.IO.Compression\DeflateStream.cs:214
at testtesttest.MainClass.Main (string[]) [0x00041] in C:\Users\ilukyanov\Desktop\Cassini\GZipDemo\Main.cs:27
at (wrapper runtime-invoke) .runtime_invoke_void_object (object,intptr,intptr,intptr)
Cette application a demandé à la Runtime de la terminer d'une manière inhabituelle. Veuillez contacter l'équipe de support de l'application pour plus d'informations.
Ce problème apparaît dans Mono 2.6.1 & 2.6.3...
Y a-t-il une façon connue de lire avec succès à partir de DeflateStream dans Mono? Ou peut-être y a-t-il des assemblies open-source de tiers offrant la même fonctionnalité?