• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# BundleContext类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中BundleContext的典型用法代码示例。如果您正苦于以下问题:C# BundleContext类的具体用法?C# BundleContext怎么用?C# BundleContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



BundleContext类属于命名空间,在下文中一共展示了BundleContext类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: OrderFiles

 public override IEnumerable<BundleFile> OrderFiles(BundleContext context, IEnumerable<BundleFile> files)
 {
     var result = base.OrderFiles(context, files);
     return result.Where(f => f.VirtualFile.Name.Equals(_filename, StringComparison.OrdinalIgnoreCase))
         .Concat(
             result.Where(f => !f.VirtualFile.Name.Equals(_filename, StringComparison.OrdinalIgnoreCase)));
 }
开发者ID:chungvinhkhang,项目名称:azure-webjobs-sdk,代码行数:7,代码来源:BundleConfig.cs


示例2: GenerateBundleResponse

        public override BundleResponse GenerateBundleResponse(BundleContext context)
        {
            // This is overridden, because BudleTransformer adds LESS @imports
            // to the Bundle.Files collection. This is bad as we allow switching
            // Optimization mode per UI. Switching from true to false would also include
            // ALL LESS imports in the generated output ('link' tags)

            // get all ORIGINAL bundle parts (including LESS parents, no @imports)
            var files = this.EnumerateFiles(context);

            // replace file pattern like {version} and let Bundler resolve min/debug extensions.
            files = context.BundleCollection.FileExtensionReplacementList.ReplaceFileExtensions(context, files);
            // save originals for later use
            _originalBundleFilePathes = files.Select(x => x.IncludedVirtualPath.TrimStart('~')).ToArray();

            var response = base.GenerateBundleResponse(context);
            // at this stage, BundleTransformer pushed ALL LESS @imports to Bundle.Files, which is bad...

            _transformedBundleFiles = response.Files;

            if (!CacheIsEnabled(context))
            {
                // ...so we must clean the file list immediately when caching is disabled ('cause UpdateCache() will not run)
                CleanBundleFiles(response);
            }

            return response;
        }
开发者ID:toannguyen241994,项目名称:SmartStoreNET,代码行数:28,代码来源:SmartStyleBundle.cs


示例3: Process

        public void Process(BundleContext context, BundleResponse response)
        {
            var compiler = new HandlebarsCompiler();
            var templates = new Dictionary<string, string>();
            var server = context.HttpContext.Server;

            foreach (var bundleFile in response.Files)
            {
                var filePath = server.MapPath(bundleFile.VirtualFile.VirtualPath);
                var bundleRelativePath = GetRelativePath(server, bundleFile, filePath);
                var templateName = namer.GenerateName(bundleRelativePath, bundleFile.VirtualFile.Name);
                var template = File.ReadAllText(filePath);
                var compiled = compiler.Precompile(template, false);

                templates[templateName] = compiled;
            }
            StringBuilder javascript = new StringBuilder();
            foreach (var templateName in templates.Keys)
            {
                javascript.AppendFormat("Ember.TEMPLATES['{0}']=", templateName);
                javascript.AppendFormat("Ember.Handlebars.template({0});", templates[templateName]);
            }

            var Compressor = new JavaScriptCompressor();
            var compressed = Compressor.Compress(javascript.ToString());

            response.ContentType = "text/javascript";
            response.Cacheability = HttpCacheability.Public;
            response.Content = compressed;
        }
开发者ID:kingpin2k,项目名称:HandlebarsHelper,代码行数:30,代码来源:HandlebarsTransformer.cs


示例4: Process

        /// <summary>
        ///     The process.
        /// </summary>
        /// <param name="context">
        ///     The context.
        /// </param>
        /// <param name="bundleResponse">
        ///     The bundle response.
        /// </param>
        /// <exception cref="ArgumentNullException">
        ///     Argument NULL Exception
        /// </exception>
        public void Process(BundleContext context, BundleResponse bundleResponse)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            if (bundleResponse == null)
            {
                throw new ArgumentNullException("bundleResponse");
            }

            context.HttpContext.Response.Cache.SetLastModifiedFromFileDependencies();

            IEnumerable<BundleFile> bundleFiles = bundleResponse.Files;
            bundleResponse.Content = Process(ref bundleFiles);

            // set bundle response files back (with imported ones)
            if (context.EnableOptimizations)
            {
                bundleResponse.Files = bundleFiles;
            }

            bundleResponse.ContentType = "text/css";
        }
开发者ID:vardars,项目名称:System.Web.Optimization.Less,代码行数:37,代码来源:LessTransform.cs


示例5: GetTransientBundleFilesKey

 /// <summary>
 ///     Returns cache key for <paramref name="bundle" />.
 /// </summary>
 /// <param name="bundle"><see cref="Bundle" /> to get cache for.</param>
 /// <param name="context">Current <see cref="BundleContext" /></param>
 /// <returns>Cache key string.</returns>
 internal static string GetTransientBundleFilesKey(this Bundle bundle, BundleContext context)
 {
     return ComposeTransientFilesKey(bundle
         .EnumerateFiles(context)
         .SelectMany(file => new[] {file.IncludedVirtualPath}.Concat(
             GetFileDependencies(bundle, file.IncludedVirtualPath, context))));
 }
开发者ID:vardars,项目名称:System.Web.Optimization.Less,代码行数:13,代码来源:DependencyCache.cs


示例6: OrderFiles

        public IEnumerable<FileInfo> OrderFiles(BundleContext context, IEnumerable<FileInfo> files)
        {
            var workingItems = files.AsParallel().Select(i => new _WorkingItem {
                Path = i.FullName,
                FileInfo = i,
                Dependencies = this._GetDependencies(i.FullName),
            });

            var fileDependencies = new Dictionary<string, _WorkingItem>(_DependencyNameComparer);
            foreach (var item in workingItems) {
                _WorkingItem duplicate;
                if (fileDependencies.TryGetValue(item.Path, out duplicate))
                    throw new ArgumentException(string.Format("During dependency resolution, a collision between '{0}' and '{1}' was detected. Files in a bundle must not collide with respect to the dependency name comparer.", Path.GetFileName(item.Path), Path.GetFileName(duplicate.Path)));

                fileDependencies.Add(item.Path, item);
            }

            foreach (var item in fileDependencies.Values) {
                foreach (var dependency in item.Dependencies) {
                    if (!fileDependencies.ContainsKey(dependency))
                        throw new ArgumentException(string.Format("Dependency '{0}' referenced by '{1}' could not found. Ensure the dependency is part of the bundle and its name can be detected by the dependency name comparer. If the dependency is not supposed to be in the bundle, add it to the list of excluded dependencies.", Path.GetFileName(dependency), Path.GetFileName(item.Path)));
                }
            }

            while (fileDependencies.Count > 0) {
                var result = fileDependencies.Values.FirstOrDefault(f => f.Dependencies.All(d => !fileDependencies.ContainsKey(d)));
                if (result == null)
                    throw new ArgumentException(string.Format("During dependency resolution, a cyclic dependency was detected among the remaining dependencies {0}.", string.Join(", ", fileDependencies.Select(d => "'" + Path.GetFileName(d.Value.Path) + "'"))));
                yield return result.FileInfo;
                fileDependencies.Remove(result.Path);
            }
        }
开发者ID:jyboudreau,项目名称:bundling,代码行数:32,代码来源:ScriptDependencyOrderer.cs


示例7: Process

        public virtual void Process(BundleContext context, BundleResponse response)
        {
            var file = VirtualPathUtility.GetFileName(context.BundleVirtualPath);

            if (!context.BundleCollection.UseCdn)
            {
                return;
            }
            if (string.IsNullOrWhiteSpace(ContainerName))
            {
                throw new Exception("ContainerName Not Set");
            }

            var connectionString = CloudConfigurationManager.GetSetting("StorageConnectionString");

            var conn = CloudStorageAccount.Parse(connectionString);
            var cont = conn.CreateCloudBlobClient().GetContainerReference(ContainerName);
            cont.CreateIfNotExists(BlobContainerPublicAccessType.Blob);
            var blob = cont.GetBlockBlobReference(file);

            blob.Properties.ContentType = response.ContentType;
            blob.UploadText(response.Content);

            var uri = string.IsNullOrWhiteSpace(CdnHost) ? blob.Uri.AbsoluteUri.Replace("http:", "").Replace("https:", "") : string.Format("{0}/{1}/{2}", CdnHost, ContainerName, file);

            using (var hashAlgorithm = CreateHashAlgorithm())
            {
                var hash = HttpServerUtility.UrlTokenEncode(hashAlgorithm.ComputeHash(Encoding.Unicode.GetBytes(response.Content)));
                context.BundleCollection.GetBundleFor(context.BundleVirtualPath).CdnPath = string.Format("{0}?v={1}", uri, hash);
            }
        }
开发者ID:tamilselvamr,项目名称:branch,代码行数:31,代码来源:BundleExtentions.cs


示例8: GivenAJavascriptFile_Process_ReturnsABundledResponse

        public void GivenAJavascriptFile_Process_ReturnsABundledResponse()
        {
            // Arrange.
            var compressorConfig = new JavaScriptCompressorConfig();
            var transform = new YuiCompressorTransform(compressorConfig);
            var contextBase = A.Fake<HttpContextBase>();
            var bundles = new BundleCollection();
            var javascriptContent = File.ReadAllText("Javascript Files\\jquery-1.10.2.js");
            var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(javascriptContent));
            var fakeStream = A.Fake<Stream>(x => x.Wrapping(memoryStream));
            var fakeVirtualFile = A.Fake<VirtualFile>(x => x.WithArgumentsForConstructor(new[] { "/Scripts/jquery-1.10.2.js" }));
            fakeVirtualFile.CallsTo(x => x.Open()).Returns(fakeStream);

            
            var bundleFiles = new List<BundleFile>
            {
                new BundleFile("/Scripts/jquery-1.10.2.js", fakeVirtualFile)
            };
            var bundleContext = new BundleContext(contextBase, bundles, "~/bundles/jquery");
            var bundleResponse = new BundleResponse(null, bundleFiles);

            // Act.
            transform.Process(bundleContext, bundleResponse);

            // Assert.
            bundleResponse.ShouldNotBe(null);
            bundleResponse.Content.Substring(0, 300).ShouldBe("/*\n * jQuery JavaScript Library v1.10.2\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2013-07-03T13:48Z\n */\n(function(bW,bU){v");
            bundleResponse.Content.Length.ShouldBe(105397);

            memoryStream.Dispose();
        }
开发者ID:jzabroski,项目名称:YUICompressor.NET,代码行数:31,代码来源:YuiCompressorTransformTests.cs


示例9: SetBundleHeaders

		private void SetBundleHeaders(BundleResponse bundleResponse, BundleContext context)
		{
			if (context.HttpContext.Response == null)
			{
				return;
			}

			if (bundleResponse.ContentType != null)
			{
				context.HttpContext.Response.ContentType = bundleResponse.ContentType;
			}

			if (context.EnableInstrumentation || context.HttpContext.Response.Cache == null)
			{
				return;
			}

			HttpCachePolicyBase cache = context.HttpContext.Response.Cache;
			cache.SetCacheability(bundleResponse.Cacheability);
			cache.SetOmitVaryStar(true);
			cache.SetExpires(DateTime.Now.AddYears(1));
			cache.SetValidUntilExpires(true);
			cache.SetLastModified(DateTime.Now);
			cache.VaryByHeaders["User-Agent"] = true;
		}
开发者ID:unger,项目名称:Bundling.Extensions,代码行数:25,代码来源:BundleHttpHandler.cs


示例10: GenerateBundleJS

          private async static void GenerateBundleJS(ScriptBundle scriptBundle, BundleCollection bundles)
        {
            string bundleOutputPath = Path.Combine(HttpRuntime.AppDomainAppPath, BundleOutputFile);
            BundleContext context = new BundleContext(new HttpContextWrapper(HttpContext.Current), bundles, ScriptsBundleVirtualPath);
            System.Text.StringBuilder fileSpacer = new System.Text.StringBuilder();

            try
            {
                using (StreamWriter outputStream = new StreamWriter(bundleOutputPath))
                {
                    outputStream.BaseStream.Seek(0, SeekOrigin.End);
                    System.Collections.Generic.List<string> filePaths = PrepareFileList(scriptBundle.EnumerateFiles(context));

                    foreach (string filePath in filePaths)
                    {
                        string fileSpacerText = BuildFileSpacer(fileSpacer, filePath);

                        await outputStream.WriteAsync(fileSpacerText);

                        using (StreamReader jsFileStream = new StreamReader(filePath))
                        {
                            await outputStream.WriteAsync(await jsFileStream.ReadToEndAsync());
                        }
                    }
                }
            }
            catch (System.NullReferenceException nullEx)
            {
                string error = nullEx.Message;
            }
        }
开发者ID:briandevlin,项目名称:mywebsite,代码行数:31,代码来源:BundleConfig.cs


示例11: Process

 public void Process(BundleContext context, BundleResponse response)
 {
     if (!response.Files.Any(f => f.VirtualFile.VirtualPath.ToLowerInvariant().Contains("jquery")))
     {
         response.Content = CopyrigthText + response.Content;
     }
 }
开发者ID:vipwan,项目名称:CommunityServer,代码行数:7,代码来源:CopyrigthTransform.cs


示例12: Process

        public void Process(BundleContext context, BundleResponse bundle)
        {
            context.HttpContext.Response.Cache.SetLastModifiedFromFileDependencies();

            var lessParser = new Parser();
            ILessEngine lessEngine = CreateLessEngine(lessParser);

            var content = new StringBuilder();

            var bundleFiles = new List<BundleFile>();

            foreach (var bundleFile in bundle.Files)
            {
                bundleFiles.Add(bundleFile);

                SetCurrentFilePath(lessParser, bundleFile.VirtualFile.VirtualPath);

                using (var reader = new StreamReader(VirtualPathProvider.OpenFile(bundleFile.VirtualFile.VirtualPath)))
                {
                    content.Append(lessEngine.TransformToCss(reader.ReadToEnd(), bundleFile.VirtualFile.VirtualPath));
                    content.AppendLine();

                    bundleFiles.AddRange(GetFileDependencies(lessParser));
                }
            }

            if (BundleTable.EnableOptimizations)
            {
                // include imports in bundle files to register cache dependencies
                bundle.Files = bundleFiles.Distinct().ToList();
            }

            bundle.ContentType = "text/css";
            bundle.Content = content.ToString();
        }
开发者ID:prashantkhandelwal,项目名称:Bloggy,代码行数:35,代码来源:BundleConfig.cs


示例13: Process

        /// <summary>
        /// The implementation of the <see cref="IBundleTransform"/> interface
        /// </summary>
        /// <param name="context"></param>
        /// <param name="response"></param>
        public void Process(BundleContext context, BundleResponse response)
        {
            if (null == context)
            {
                throw new ArgumentNullException("context");
            }
            if (null == response)
            {
                throw new ArgumentNullException("response");
            }

            var urlMatcher = new Regex(@"url\((['""]?)(.+?)\1\)", RegexOptions.IgnoreCase);

            var content = new StringBuilder();
            foreach (var fileInfo in response.Files)
            {
                if (fileInfo.Directory == null)
                {
                    continue;
                }
                var fileContent = _fileProvider.ReadAllText(fileInfo.FullName);
                var directory = fileInfo.Directory.FullName;
                content.Append(urlMatcher.Replace(fileContent, match => ProcessMatch(match, directory)));
            }
            
            context.HttpContext.Response.Cache.SetLastModifiedFromFileDependencies();
            response.Content = content.ToString();
            response.ContentType = CssContentType;
        }
开发者ID:jfbourke,项目名称:JB.WebOptimization.Transformers,代码行数:34,代码来源:CssDataUriTransform.cs


示例14: Process

		public void Process(BundleContext context, BundleResponse response)
		{
			Assert.ArgumentNotNull(response, "response");

			response.Content = new CssCompressor().Compress(response.Content);
			response.ContentType = "text/css";
		}
开发者ID:unger,项目名称:Bundling.Extensions,代码行数:7,代码来源:YuiCssMinify.cs


示例15: Process

        public void Process(BundleContext context, BundleResponse response)
        {
            var strBundleResponse = new StringBuilder();
            // Javascript module for Angular that uses templateCache
            strBundleResponse.AppendFormat(
                @"angular.module('{0}').run(['$templateCache',function(t){{",
                _moduleName);

            foreach (var file in response.Files)
            {
                string content;

                //Get content
                using (var stream = new StreamReader(file.VirtualFile.Open()))
                {
                    content = stream.ReadToEnd();
                }

                //Remove breaks and escape qoutes
                content = Regex.Replace(content, @"\r\n?|\n", "");
                content = content.Replace("'", "\\'");

                // Create insert statement with template
                strBundleResponse.AppendFormat(
                    @"t.put('{0}','{1}');", file.VirtualFile.VirtualPath.Substring(1), content);
            }
            strBundleResponse.Append(@"}]);");

            response.Files = new BundleFile[] {};
            response.Content = strBundleResponse.ToString();
            response.ContentType = "text/javascript";
        }
开发者ID:F2EVarMan,项目名称:Projise,代码行数:32,代码来源:PartialsTransform.cs


示例16: OrderFiles

        /// <summary>
        /// Ordena os scripts por funcao: Modules, Services e Controllers
        /// </summary>
        /// <param name="context"></param>
        /// <param name="files"></param>
        /// <returns></returns>
        public IEnumerable<BundleFile> OrderFiles(BundleContext context, IEnumerable<BundleFile> files)
        {
            var modules = new List<BundleFile>();
            var services = new List<BundleFile>();
            var controllers = new List<BundleFile>();

            foreach (var item in files)
            {
                if (item.VirtualFile.Name.Contains("service"))
                {
                    services.Add(item);
                }
                else if (item.VirtualFile.Name.Contains("controller"))
                {
                    controllers.Add(item);
                }
                else
                {
                    modules.Add(item);
                }
            }

            var allFiles = new List<BundleFile>();

            allFiles.AddRange(modules);
            allFiles.AddRange(services);
            allFiles.AddRange(controllers);

            return allFiles;
        }
开发者ID:marcosli,项目名称:multi-vagas,代码行数:36,代码来源:BundleConfig.cs


示例17: Process

        public override void Process(BundleContext context, BundleResponse response)
        {
            var compressor = new CssCompressor();

            response.Content = compressor.Compress(response.Content);
            response.ContentType = ContentTypes.Css;
        }    
开发者ID:JamieDixon,项目名称:Web.Optimization,代码行数:7,代码来源:YuiCssMinify.cs


示例18: Process

        public void Process(BundleContext context, BundleResponse response)
        {
            var coffeeScriptPath =
                Path.Combine(
                    HttpRuntime.AppDomainAppPath,
                    "Scripts",
                    "coffee-script.js");

            if (!File.Exists(coffeeScriptPath))
            {
                throw new FileNotFoundException(
                    "Could not find coffee-script.js beneath the ~/Scripts directory.");
            }

            var coffeeScriptCompiler =
                File.ReadAllText(coffeeScriptPath, Encoding.UTF8);

            var engine = new ScriptEngine();
            engine.Execute(coffeeScriptCompiler);

            // Initializes a wrapper function for the CoffeeScript compiler.
            var wrapperFunction =
                string.Format(
                    "var compile = function (src) {{ return CoffeeScript.compile(src, {{ bare: {0} }}); }};",
                    _bare.ToString(CultureInfo.InvariantCulture).ToLower());
            
            engine.Execute(wrapperFunction);
            
            var js = engine.CallGlobalFunction("compile", response.Content);
                
            response.ContentType = ContentTypes.JavaScript;
            response.Content = js.ToString();
        }
开发者ID:JamieDixon,项目名称:Web.Optimization,代码行数:33,代码来源:CoffeeScriptTransform.cs


示例19: Process

        public void Process(BundleContext context, BundleResponse response)
        {
            var isDebug = context.HttpContext.IsDebuggingEnabled;

            if (isDebug && !Directory.Exists(GeneratedTemplatesPath)) Directory.CreateDirectory(GeneratedTemplatesPath);

            var str = new StringBuilder();
            str.Append(BeginScript);

            var results = new List<FileInfo>();
            foreach (var file in response.Files.Select(o => new { Name = o.Name, Value = EncodeItem(o) }))
            {
                str.Append(PushScript);
                str.Append(file.Value);
                str.Append(EndScript);

                if (!isDebug) continue;

                var fileName = GenerateTemplate(file.Name, file.Value);
                results.Add(new FileInfo(fileName));
            }

            response.Files = results;
            response.Content = str.ToString();
            response.ContentType = ContentType;
        }
开发者ID:fpellet,项目名称:MugSPA2012,代码行数:26,代码来源:TemplateTransform.cs


示例20: Process

 public void Process(BundleContext context, BundleResponse response)
 {
     string content = response.get_Content();
     StringBuilder stringBuilder = new StringBuilder();
     char[] chrArray = new char[1];
     chrArray[0] = '\n';
     string[] strArrays = content.Split(chrArray);
     for (int i = 0; i < (int)strArrays.Length; i++)
     {
         string str = strArrays[i];
         Match match = Regex.Match(str, "url\\([\\\"\\'](.*)\\?embed[\\\"\\']\\)");
         if (match.Success)
         {
             string str1 = match.Result("$1");
             str1 = ConvertCssUrlsToDataUris.CleanPath(str1);
             try
             {
                 str1 = HttpContext.Current.Server.MapPath(str1);
             }
             catch (ArgumentException argumentException)
             {
                 throw new Exception(string.Concat("Illegal Characters : ", str1));
             }
             stringBuilder.AppendLine(str.Replace(match.Result("$0"), this.GetDataUri(str1)));
             stringBuilder.AppendLine(str.Replace("background", "*background"));
         }
         else
         {
             stringBuilder.Append(str);
         }
     }
     response.set_ContentType("text/css");
     response.set_Content(stringBuilder.ToString());
 }
开发者ID:hurricanepkt,项目名称:BundlingDataURI,代码行数:34,代码来源:ConvertCssUrlsToDataUris.cs



注:本文中的BundleContext类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# BundleInstaller类代码示例发布时间:2022-05-24
下一篇:
C# BundleCollection类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap