コード例 #1
0
        private WebResource GetWebResource(Uri uri, string fileName)
        {
            byte[] headBuff;
            byte[] footBuff;

            var buff = File.ReadAllBytes(fileName);

            // webResourceLength = buff.Length;
            webResourceMimeType = MimeHelper.GetMimeType(System.IO.Path.GetExtension(fileName));
            // webResourceData = new byte[buff.Length]; ;

            if (ChromiumStartup.EnableMaster && uri.ToString().Contains(ChromiumStartup.SubViewPathName))
            {
                var headFile = GetResourceFileName(new Uri(ChromiumStartup.MasterHeaderFile));
                headBuff = File.ReadAllBytes(headFile);

                var footFile = GetResourceFileName(new Uri(ChromiumStartup.MasterFooterFile));
                footBuff = File.ReadAllBytes(footFile);

                webResourceLength = buff.Length + headBuff.Length + footBuff.Length;
                webResourceData   = new byte[webResourceLength];

                Buffer.BlockCopy(headBuff, 0, webResourceData, 0, headBuff.Length);
                Buffer.BlockCopy(buff, 0, webResourceData, headBuff.Length, buff.Length);
                Buffer.BlockCopy(footBuff, 0, webResourceData, headBuff.Length + buff.Length, footBuff.Length);
            }
            else
            {
                webResourceLength = buff.Length;
                webResourceData   = new byte[buff.Length];;
                Buffer.BlockCopy(buff, 0, webResourceData, 0, buff.Length);
            }

            return(new WebResource(webResourceData, webResourceMimeType));
        }
コード例 #2
0
        private WebResource GetNonFoundWebResource(Uri uri, string fileName)
        {
            webResourceMimeType = MimeHelper.GetMimeType(System.IO.Path.GetExtension(fileName));
            byte[] headBuff;
            byte[] footBuff;
            var    nonFoundData = Encoding.UTF8.GetBytes($"Content {uri.ToString()} Not Found!");

            if (ChromiumStartup.EnableMaster && uri.ToString().Contains(ChromiumStartup.SubViewPathName))
            {
                var headFile = GetResourceFileName(new Uri(ChromiumStartup.MasterHeaderFile));
                headBuff = File.ReadAllBytes(headFile);

                var footFile = GetResourceFileName(new Uri(ChromiumStartup.MasterFooterFile));
                footBuff = File.ReadAllBytes(footFile);

                webResourceLength = nonFoundData.Length + headBuff.Length + footBuff.Length;
                webResourceData   = new byte[webResourceLength];

                Buffer.BlockCopy(headBuff, 0, webResourceData, 0, headBuff.Length);
                Buffer.BlockCopy(nonFoundData, 0, webResourceData, headBuff.Length, nonFoundData.Length);
                Buffer.BlockCopy(footBuff, 0, webResourceData, headBuff.Length + nonFoundData.Length, footBuff.Length);
            }
            else
            {
                webResourceLength = nonFoundData.Length;
                webResourceData   = new byte[nonFoundData.Length];
                ;
                Buffer.BlockCopy(nonFoundData, 0, webResourceData, 0, nonFoundData.Length);
            }

            return(new WebResource(webResourceData, webResourceMimeType));
        }
コード例 #3
0
        private Assembly GetResourceInfo(Uri uri, out string resourceMimeType, out string resourceName)
        {
            var fileName = string.IsNullOrEmpty(domain)
                    ? string.Format("{0}{1}", uri.Authority, uri.AbsolutePath)
                    : uri.AbsolutePath;

            //requestFile = uri.LocalPath;
            if (fileName.StartsWith("/") && fileName.Length > 1)
            {
                fileName = fileName.Substring(1);
            }

            var ass          = resourceAssembly;
            var endTrimIndex = fileName.LastIndexOf('/');

            if (endTrimIndex > -1)
            {
                var tmp = fileName.Substring(0, endTrimIndex);
                tmp = tmp.Replace("-", "_");

                fileName = string.Format("{0}{1}", tmp, fileName.Substring(endTrimIndex));
            }

            var resourcePath = string.Format("{0}.{1}", ass.GetName().Name, fileName.Replace('/', '.'));

            resourceMimeType = MimeHelper.GetMimeType(System.IO.Path.GetExtension(fileName));

            resourceName = ass.GetManifestResourceNames()
                           .SingleOrDefault(p => p.Equals(resourcePath, StringComparison.CurrentCultureIgnoreCase));
            return(ass);
        }