由于保护级别,无法访问GZipStrean

时间:2015-12-16 14:36:39

标签: c# gzipstream

我只想访问System.IO.Compression.GZipStream类来解压缩Web Http响应。但由于保护级别,我无法访问GZipStream类。我正在使用Mvvm cross进行移动开发。

  • 这是GZipStream类代码:

    命名空间System.IO.Compression

{

internal class GZipStream : Stream

{
    public GZipStream(Stream stream, CompressionMode mode);
    public GZipStream(Stream stream, CompressionMode mode, bool leaveOpen);

} }

  • 我需要访问第一个构造函数来创建GZipStream的实例。
  • 那么有没有其他方法可以创建GZipStream类型的实例?

2 个答案:

答案 0 :(得分:0)

您可以像这样轻松压缩byte []缓冲区数组

        using (var ms = new MemoryStream())
        {
            using (var gzip = new GZipStream(ms, CompressionMode.Compress))
            {
                gzip.Write(buffer, 0, buffer.Length);
                gzip.Close();
            }

            compressed = ms.ToArray();
        }

答案 1 :(得分:0)

在Xamarin Forms for PCL中我解决了这个问题,刚刚替换了your_project_name .csproj

中的 TargetFrameworkProfile

FROM:

  

Profile259

TO:

  

Profile111

也可以尝试安装NuGet包 Microsoft.Bcl.Compression ,这个选项虽然解决了访问GZipStream的问题,但是在编译时我遇到了System.TypeLoadException。