Example #1
0
        public Stream GetStream(string name)
        {
            Uri uri = new Uri(name);

            var path     = uri.AbsolutePath;
            var pieces   = path.Split('/');
            var fileName = pieces[pieces.Length - 1];

            EmbeddedResource manifestInfo = null;

            if (GetDictionary().TryGetValue(fileName, out manifestInfo))
            {
                var rawStream = manifestInfo.Assembly.GetManifestResourceStream(manifestInfo.ResourceName);
                if (rawStream.Length > 2 && rawStream.ReadByte() == 0x50 && rawStream.ReadByte() == 0x4B) //PK
                {
                    return(ZipStorer.DecompressStream(rawStream));
                }
                return(rawStream);
            }
            else
            {
                if (OtherResourceStream != null)
                {
                    return(OtherResourceStream.GetByFullUrl(name));
                }
            }
            return(null);
        }