Asp.net可获取的资源,总共有4种:
1. 程序集中的直接嵌入的文件,如:图像、js文件、html文件等。
2. 站点内部的直接嵌入的文件,如:图像、js文件、html文件等。
3. 程序集中的直接嵌入的资源文件(后缀名为“.resx”)。
4. 站点内部的App_GlobalResources目录下的资源文件(后缀名为“.resx”)。
Asp.net除了第2种可以直接在页面中引用外,其他3种资源的获得方式有5种。
1. GetWebResourceUrl方法:可以直接获取程序集中的直接嵌入的文件的url字符串。
2. ResourceManager方法:可以获取程序集中直接嵌入的资源文件(后缀名为“.resx”)。
3. 直接让studio平台用ResXFileCodeGenerator工具生成强类型资源类,然后引用。
4. Assembly.GetManifestResourceStream方法:可以直接获取DLL中的直接嵌入的文件。
5. Resources.[资源文件名].ResourceManager.GetString("jj"):可以直接获取站点内部的App_GlobalResources目录下的资源文件。
Asp.net可以建立.resx类型的资源文件,也可以在程序集中嵌入图像、js文件、html文件等。这2种都是资源,但提取的方式有所不同。
直接嵌入程序集的资源(在程序集中嵌入图像、js文件、html文件等),通常用System.Web.UI.ClientScriptManager的GetWebResourceUrl方法来提取,ClientScriptManager类通过Page.ClientScript暴露。在控件内部,可以通过this.Page.ClientScript得到ClientScriptManager实例。
使用GetWebResourceUrl方法的程序集的属性文件AssemblyInfo.cs必须要将资源文件进行注册。
[assembly: WebResourceAttribute("eee.01.jpg","image/jpg")] [assembly: WebResourceAttribute("eee.02.jpg", "image/jpg")] [assembly: WebResourceAttribute("eee.ee.01.jpg", "image/jpg")] |
但Asp.net可以建立.resx类型的资源文件,则需要使用System.Resources.ResourceManager来提取。
使用System.Resources.ResourceManager提取所获得的可以是字符串、图像、图标、音频、文件、其他等对象。可以在服务端的执行代码中使用。但不能直接暴露给客户端。
而使用GetWebResourceUrl方法所获得的是一个字符串,该字符串是服务端文件(图像、js、html等)的url地址。不能用在服务端的执行代码中。
如果要在服务端读取程序集中的文件,必须使用其他方法。
从程序集中获取图形文件
如下方法从ppp.ppp1类所在的程序集中获取了01.jpg图形文件,该文件存在于fff目录,该程序集的默认空间名为kkk。
| |
|