.NET 資源文件resx、Resources詳細(xì)說明
更新時(shí)間:2010年03月30日 11:59:30 作者:
和大家講一下.net對(duì)資源文件的使用做一下說明,希望本文對(duì)你有所幫助。
資源文件簡(jiǎn)介
(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)用簡(jiǎn)介
(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ì)資源文件的命名簡(jiǎn)單介紹一下,全局資源只要保證其文件為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á)到我們的需求,使用圖片替換仍舊為我們的首選方案。
(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)用簡(jiǎn)介
(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)用代碼示例:
復(fù)制代碼 代碼如下:
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ì)資源文件的命名簡(jiǎn)單介紹一下,全局資源只要保證其文件為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中的Menu控件的應(yīng)用及XmlDataSource的了解
以前一直以為菜單都是通過sitemap制作的,最近看到項(xiàng)目中的方法是使用XmlDataSource榜定的,很是好奇,于是研究了一下,感覺還不錯(cuò)哦,感興趣的朋友也可以了解下啊,或許本文所提供的對(duì)你學(xué)習(xí)有所幫助呢2013-02-02
.NET Core如何進(jìn)行請(qǐng)求轉(zhuǎn)發(fā)的實(shí)現(xiàn)
這篇文章主要介紹了.NET Core如何進(jìn)行請(qǐng)求轉(zhuǎn)發(fā)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
.NET 下運(yùn)用策略模式(組合行為和實(shí)體的一種模式)
我簡(jiǎn)單的理解策略模式就是把行為(方法)單獨(dú)的抽象出來,并采用組合(Has-a)的方式,來組合行為和實(shí)體的一種模式比如,.NET中對(duì)數(shù)組排序的Sort的方法就是一個(gè)策略模式的實(shí)現(xiàn)模板2012-12-12
asp.net core項(xiàng)目授權(quán)流程詳解
本文詳細(xì)講解了asp.net core項(xiàng)目的授權(quán)流程,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09
此頁的狀態(tài)信息無效,可能已損壞 的處理辦法及原因分析
此頁的狀態(tài)信息無效,可能已損壞 的處理辦法及原因分析,需要的朋友可以參考一下2013-06-06
ASP.NET實(shí)現(xiàn)License Key輸入功能的小例子
當(dāng)我們安裝微軟的軟件,多數(shù)軟件是需要輸入license key。它有五個(gè)文本框,輸入完第一個(gè)文本框之后,光標(biāo)自動(dòng)跳至下一個(gè)文本框。 Insus.NET今天也使用asp.net來模仿一個(gè)。呵呵。2013-03-03
asp.net String.format中大括號(hào)的加入方法
String.format中大括號(hào)的加入方法,需要的朋友可以參考下。2010-05-05

