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

推荐订阅源

Jina AI
Jina AI
博客园 - 【当耐特】
量子位
C
Check Point Blog
博客园 - 叶小钗
博客园 - 聂微东
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
The Cloudflare Blog
T
Tailwind CSS Blog
人人都是产品经理
人人都是产品经理
月光博客
月光博客
V
V2EX
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
有赞技术团队
有赞技术团队
Apple Machine Learning Research
Apple Machine Learning Research
S
SegmentFault 最新的问题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 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 />");
    }
}