惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
宝玉的分享
宝玉的分享
量子位
博客园 - Franky
The Cloudflare Blog
博客园 - 【当耐特】
Jina AI
Jina AI
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
V
V2EX
MongoDB | Blog
MongoDB | Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Help Net Security
博客园 - 聂微东
F
Fortinet All Blogs
GbyAI
GbyAI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Stack Overflow Blog
Stack Overflow Blog
博客园_首页
人人都是产品经理
人人都是产品经理

博客园 - Truly

找不到具有绑定 MetadataExchangeHttpBinding 的终结点的与方案 http 匹配的基址。注册的基址方案是 [https] 生成8位的不重复乱码 省地市级联选择js 继续完善SandCastle 使用SandCastle和ScriptDoc创建JavaScript文档 关于.NET的异常处理的几个误区 JavaScript实现自定义事件 JavaScript面向对象之属性实现 JavaScript随笔一篇 - Truly - 博客园 设计模式在JavaScript中的应用(2) -- Observer 关于JavaScript的“+”运算和“-”运算和三目操作符“?:” - Truly - 博客园 微软ASP.NET AJAX中日期类型的JSON处理 JavaScript面向对象之方法重载 谁动了我的奶酪? 设计模式在JavaScript中的应用(1) 在JavaScript中使用面向对象 对于Asp.Net 2.0中脚本资源的研究(1) js功能类库放送(二) 调整大小库 js功能类库放送(一) 拖动功能库
对于Asp.Net 2.0中脚本资源的研究(2)
Truly · 2007-07-10 · via 博客园 - Truly

对于Asp.Net 2.0中脚本资源的研究(2)
Author: Truly

上篇文章中我们主要介绍了.net 2.0 中的资源文件,并以WebForms.js为例做了重点分析,有朋友问我如何获取所有的资源文件,方法有很多中。

可以使用我们熟悉的Reflector导出所有资源文件(利用Reflector.FileDisassembler插件),也可以使用下面的方法:

遍历所有资源:

Attribute[] abc = System.Web.UI.WebResourceAttribute.GetCustomAttributes(Assembly.GetAssembly(typeof(System.Web.UI.Page))) ;int i = 0;
foreach (Attribute a in abc)
{
    
if (a.TypeId.ToString() == "System.Web.UI.WebResourceAttribute")
    {
        i
++;
        Response.Write(((System.Web.UI.WebResourceAttribute)(a)).WebResource 
+ "\r\n");
    }
}
Response.Write(
"<br>总数量:"+ i);

导出所有的资源文件:

Assembly assm = Assembly.GetAssembly(typeof(System.Web.UI.Page));
Attribute[] abc 
= System.Web.UI.WebResourceAttribute.GetCustomAttributes(assm);

Stream stream;
System.IO.FileStream sr;

byte[] bt;
string name = "";
WebResourceAttribute wra;
foreach (Attribute a in abc)
{
    
if (a.TypeId.ToString() == "System.Web.UI.WebResourceAttribute")
    {
        wra 
= (WebResourceAttribute)a;
        name 
= wra.WebResource;

        stream 

= assm.GetManifestResourceStream(name);
        
if (stream == null)
            
continue;
        bt 
= new byte[stream.Length];
        stream.Read(bt, 
0, (int)stream.Length);
        sr 
= new FileStream(@"f:\resource\" + name, FileMode.Create);

        sr.Write(bt, 

0, bt.Length);
        sr.Close();
        stream.Close();

        Response.Write(a.TypeId.ToString() 

+ "<br />");
    }
}