
我开了一个新的StyleBundle,这样:
var CSSBundle = new StyleBundle("~/bundle/CSS"); 然后循环通过配置并添加任何发现包括:
CSSBundle.Include(config.source);
在循环之后,我想检查是否有实际包含任何文件/目录.我知道有Enumeratefiles(),但我不认为这是100%的目的.
有人做过类似的事吗?
解决方法 Bundle类使用不暴露于应用程序的内部项目列表,并且不一定通过反射访问(我尝试并且无法获取任何内容).您可以使用BundleResolver类获取有关此类信息,如下所示:var CSSBundle = new StyleBundle("~/bundle/CSS");CSSBundle.Include(config.source);// if your bundle is already in Bundletable.Bundles List,use that. Otherwise...var collection = new BundleCollection();collection.Add(CSSBundle)// get bundle contentsvar resolver = new BundleResolver(collection);List<string> cont = resolver.GetBundleContents("~/bundle/CSS").ToList(); 如果你只需要一个计数:
int count = resolver.GetBundleContents("~/bundle/CSS").Count(); 编辑:使用反射
显然我以前的反思测试做错了.
这实际上是:
using System.Reflection;using System.Web.Optimization;...int count = ((ItemRegistry)typeof(Bundle).GetProperty("Items",BindingFlags.NonPublic | BindingFlags.Instance).GetValue(CSSBundle,null)).Count; 您当然可以添加一些安全检查,并且像很多反思示例一样违反了Items属性的预期安全性,但它的工作正常.
总结以上是内存溢出为你收集整理的c# – Web.Optimizations – 从风格/脚本包中获取所有内容的任何方式?全部内容,希望文章能够帮你解决c# – Web.Optimizations – 从风格/脚本包中获取所有内容的任何方式?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)