Как распаковать один файл из zip-архива в памяти?

Разработка на C# под linux
class ZipArchive, from System.IO.Compression.dll
http://stackoverflow.com/questions/27508822/read-the-content-of-an-xml-file-within-a-zip-package

System.IO.Compression
using (ZipArchive archive = new ZipArchive(postedZipStream))
{
    foreach (ZipArchiveEntry entry in archive.Entries)
    {
         var stream = entry.Open();
         //Do awesome stream stuff!!
    }
}

.Net 4.5
.Net 4.0
/usr/lib64/mono/gac/System.IO.Compression/4.0.0.0__b77a5c561934e089/System.IO.Compression.dll
/usr/lib64/mono/4.5-api/System.IO.Compression.dll
for 3.5:
http://stackoverflow.com/questions/184309/how-to-use-system-io-compression-to-read-write-zip-files
for 2.0:
https://github.com/yallie/unzip

Packages:
Microsoft.Bcl.Compression

string metaDataContents;
using (var zipStream = new FileStream(@"C:\OB10LinuxShare\TEST1\Temp" + "\\"+zipFileName+".zip", FileMode.Open))
using (var archive = new ZipArchive(zipStream, ZipArchiveMode.Read))
{
    foreach (var entry in archive.Entries)
    {
        if (entry.Name.EndsWith(".xml"))
        {
            FileInfo metadataFileInfo = new FileInfo(entry.Name);
            string metadataFileName = metadataFileInfo.Name.Replace(metadataFileInfo.Extension, String.Empty);
            if (String.Compare(zipFileName, metadataFileName, true) == 0)
            {
                using (var stream = entry.Open())
                using (var reader = new StreamReader(stream))
                {
                    metaDataContents = reader.ReadToEnd();
                    clientProcessLogWriter.WriteToLog(LogWriter.LogLevel.DEBUG, "metaDataContents : " + metaDataContents);
                }
            }
        }
    }
}