.NET 資源文件resx、Resources詳細(xì)說明
(1)resx文件:
基于文本的格式是特定于.NET 框架的 XML 格式,稱為 ResX(.resx 文件)。不考慮其 XML 基礎(chǔ),該格式不是專門為人工閱讀而設(shè)計(jì)的(XML 格式很少是這樣的)。但是,Visual Studio .NET 仍然為 .resx 文件提供了一個(gè)基本編輯器。
(2)Resources文件:
.resources 擴(kuò)展名來自于在將 .resx 文件作為資源嵌入之前 Visual Studio .NET 處理該文件時(shí)所使用的工具。工具名稱是 resgen.exe,它用來將 .resx XML 格式“編譯”為二進(jìn)制格式??梢允謩?dòng)將 .resx 文件編譯成 .resources 文件,如下所示:
C:\> resgen.exe Resource1.resx
在將 .resx 文件編譯成 .resources 文件以后,就可以使用 System.Resources 命名空間中的 ResourceReader 來枚舉它:
二、 資源文件應(yīng)用簡介
(1)在Windows Application中的使用:
1.首先注意的是,在Windows Application中的resx資源文件是和其中的Form相關(guān)聯(lián)的,及Form.cs與Form.Designer.cs和Form.resx文件是作為一個(gè)整體進(jìn)行展示的(在資源管理器中),這里不涉及本地與全局資源文件夾的概念,及如果想導(dǎo)入已經(jīng)生成的Resources文件的話,直接在工程上右鍵add new Item即可,選擇完相關(guān)的Resources文件,記住要將資源文件的屬性中的Build Action選擇為Embadded resource(內(nèi)嵌資源),這樣的話,資源就會(huì)在你編譯后直接嵌入到你的應(yīng)用程序當(dāng)中。
2.具體應(yīng)用代碼示例:
Assembly assembly = Assembly.GetExecutingAssembly();
ResourceManager rm = new ResourceManager("TestStrongName123.Form1", assembly);
this.textBox1.Text = rm.GetString("First");
3.resources文件與resx文件的區(qū)別,也可以從他們對(duì)資源的保存形式來判斷,前者會(huì)將所有的資源都保存到該文件中,而后者只是會(huì)保存對(duì)資源的引用
在ASP.NET Web Application中的使用:
1.在此處應(yīng)用資源文件的時(shí)候可能與前面的使用方法略有不同,而且在VS2005中引入了新的使用方式,即資源文件夾的概念,即把全局資源與本地資源分別保存到App_GlobalResources和App_LocalResources目錄中,只要放到這兩個(gè)目錄中的資源文件,可以再根據(jù)自己的分類繼續(xù)進(jìn)行文件劃分,這個(gè)不影響工程找到資源文件,這里還要對(duì)資源文件的命名簡單介紹一下,全局資源只要保證其文件為resx文件即可,名字自己可以隨意,而后者的命名必須遵循一定的命名規(guī)則才可以,即:對(duì)應(yīng)的頁面文件名 + “.resx”。
2.具體應(yīng)用代碼示例:
<1> 應(yīng)用本地資源(字符串):
<asp:Literal ID="Literal1" runat="server" Text="<%$Resources:LocalString1%>"></asp:Literal>
Literal2.Text = (string)this.GetLocalResourceObject("LocalString2");
<2> 應(yīng)用全局資源(字符串):
<asp:Literal ID="Literal3" runat="server" Text="<%$Resources:GlobalResource, GlobalString1%>"></asp:Literal>
Literal4.Text = (string)base.GetGlobalResourceObject("GlobalResource", "GlobalString2");
<3> 獲取全局資源中的圖片:
Bitmap bm = null;
bm = Resources.GlobalResource.GlobalSmallFail;
3.其他一點(diǎn)說明:使用web site站點(diǎn)的時(shí)候,與這里的應(yīng)用也是類似的,這里就不贅述了。
4.針對(duì)公文系統(tǒng)來說,資源文件的使用比較局限,因?yàn)槲覀兊墓南到y(tǒng)采用的策略為使用客戶端控件,避免使用服務(wù)器端控件;再者,我們都餓應(yīng)用無法提前欲知情況(也就是全球化的資源思路),所以,鑒于此,我們系統(tǒng)中應(yīng)用資源文件的使用只能局限到對(duì)字符串等的使用,但是在圖片等方面可能無法達(dá)到我們的需求,使用圖片替換仍舊為我們的首選方案。
相關(guān)文章
ASP.NET MVC5網(wǎng)站開發(fā)項(xiàng)目框架(二)
這篇文章主要介紹了ASP.NET MVC5網(wǎng)站開發(fā)項(xiàng)目框架,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-09-09.net中的session與cookies區(qū)別及使用方法
cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上,cookie不是很安全,別人可以分析存放在本地的COOKIE并進(jìn)行COOKIE欺騙,考慮到安全應(yīng)當(dāng)使用session2013-04-04DropDownList綁定數(shù)據(jù)表實(shí)現(xiàn)兩級(jí)聯(lián)動(dòng)示例
這篇文章主要介紹了DropDownList綁定數(shù)據(jù)表實(shí)現(xiàn)兩級(jí)聯(lián)動(dòng)具體實(shí)現(xiàn),需要的朋友可以參考下2014-03-03ASP.NET也像WinForm程序一樣運(yùn)行的實(shí)現(xiàn)方法
我們今天要談到的是讓ASP.NET的程序也像WinForm一樣的運(yùn)行,這樣就不需要安裝IIS或者Visual Studio這樣的特定環(huán)境了2012-01-01asp.net下將頁面內(nèi)容導(dǎo)入到word模板中的方法
asp.net下將頁面內(nèi)容導(dǎo)入到word模板中的方法,需要的朋友可以參考下。2010-10-10基于ASP.NET Core數(shù)據(jù)保護(hù)生成驗(yàn)證token示例
本篇文章主要介紹了基于ASP.NET Core數(shù)據(jù)保護(hù)生成驗(yàn)證token,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02ASP.NET Core應(yīng)用錯(cuò)誤處理之DeveloperExceptionPageMiddleware中間件呈現(xiàn)“開發(fā)者
這篇文章主要給大家介紹了關(guān)于ASP.NET Core應(yīng)用錯(cuò)誤處理之DeveloperExceptionPageMiddleware中間件呈現(xiàn)“開發(fā)者異常頁面”的相關(guān)資料,需要的朋友可以參考下2019-01-01