.NET 資源文件resx、Resources詳細說明
更新時間:2010年03月30日 11:59:30 作者:
和大家講一下.net對資源文件的使用做一下說明,希望本文對你有所幫助。
資源文件簡介
(1)resx文件:
基于文本的格式是特定于.NET 框架的 XML 格式,稱為 ResX(.resx 文件)。不考慮其 XML 基礎(chǔ),該格式不是專門為人工閱讀而設(shè)計的(XML 格式很少是這樣的)。但是,Visual Studio .NET 仍然為 .resx 文件提供了一個基本編輯器。
(2)Resources文件:
.resources 擴展名來自于在將 .resx 文件作為資源嵌入之前 Visual Studio .NET 處理該文件時所使用的工具。工具名稱是 resgen.exe,它用來將 .resx XML 格式“編譯”為二進制格式??梢允謩訉?.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文件是作為一個整體進行展示的(在資源管理器中),這里不涉及本地與全局資源文件夾的概念,及如果想導入已經(jīng)生成的Resources文件的話,直接在工程上右鍵add new Item即可,選擇完相關(guān)的Resources文件,記住要將資源文件的屬性中的Build Action選擇為Embadded resource(內(nèi)嵌資源),這樣的話,資源就會在你編譯后直接嵌入到你的應(yī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ū)別,也可以從他們對資源的保存形式來判斷,前者會將所有的資源都保存到該文件中,而后者只是會保存對資源的引用
在ASP.NET Web Application中的使用:
1.在此處應(yīng)用資源文件的時候可能與前面的使用方法略有不同,而且在VS2005中引入了新的使用方式,即資源文件夾的概念,即把全局資源與本地資源分別保存到App_GlobalResources和App_LocalResources目錄中,只要放到這兩個目錄中的資源文件,可以再根據(jù)自己的分類繼續(xù)進行文件劃分,這個不影響工程找到資源文件,這里還要對資源文件的命名簡單介紹一下,全局資源只要保證其文件為resx文件即可,名字自己可以隨意,而后者的命名必須遵循一定的命名規(guī)則才可以,即:對應(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.其他一點說明:使用web site站點的時候,與這里的應(yīng)用也是類似的,這里就不贅述了。
4.針對公文系統(tǒng)來說,資源文件的使用比較局限,因為我們的公文系統(tǒng)采用的策略為使用客戶端控件,避免使用服務(wù)器端控件;再者,我們都餓應(yīng)用無法提前欲知情況(也就是全球化的資源思路),所以,鑒于此,我們系統(tǒng)中應(yīng)用資源文件的使用只能局限到對字符串等的使用,但是在圖片等方面可能無法達到我們的需求,使用圖片替換仍舊為我們的首選方案。
(1)resx文件:
基于文本的格式是特定于.NET 框架的 XML 格式,稱為 ResX(.resx 文件)。不考慮其 XML 基礎(chǔ),該格式不是專門為人工閱讀而設(shè)計的(XML 格式很少是這樣的)。但是,Visual Studio .NET 仍然為 .resx 文件提供了一個基本編輯器。
(2)Resources文件:
.resources 擴展名來自于在將 .resx 文件作為資源嵌入之前 Visual Studio .NET 處理該文件時所使用的工具。工具名稱是 resgen.exe,它用來將 .resx XML 格式“編譯”為二進制格式??梢允謩訉?.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文件是作為一個整體進行展示的(在資源管理器中),這里不涉及本地與全局資源文件夾的概念,及如果想導入已經(jīng)生成的Resources文件的話,直接在工程上右鍵add new Item即可,選擇完相關(guān)的Resources文件,記住要將資源文件的屬性中的Build Action選擇為Embadded resource(內(nèi)嵌資源),這樣的話,資源就會在你編譯后直接嵌入到你的應(yī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ū)別,也可以從他們對資源的保存形式來判斷,前者會將所有的資源都保存到該文件中,而后者只是會保存對資源的引用
在ASP.NET Web Application中的使用:
1.在此處應(yīng)用資源文件的時候可能與前面的使用方法略有不同,而且在VS2005中引入了新的使用方式,即資源文件夾的概念,即把全局資源與本地資源分別保存到App_GlobalResources和App_LocalResources目錄中,只要放到這兩個目錄中的資源文件,可以再根據(jù)自己的分類繼續(xù)進行文件劃分,這個不影響工程找到資源文件,這里還要對資源文件的命名簡單介紹一下,全局資源只要保證其文件為resx文件即可,名字自己可以隨意,而后者的命名必須遵循一定的命名規(guī)則才可以,即:對應(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.其他一點說明:使用web site站點的時候,與這里的應(yīng)用也是類似的,這里就不贅述了。
4.針對公文系統(tǒng)來說,資源文件的使用比較局限,因為我們的公文系統(tǒng)采用的策略為使用客戶端控件,避免使用服務(wù)器端控件;再者,我們都餓應(yīng)用無法提前欲知情況(也就是全球化的資源思路),所以,鑒于此,我們系統(tǒng)中應(yīng)用資源文件的使用只能局限到對字符串等的使用,但是在圖片等方面可能無法達到我們的需求,使用圖片替換仍舊為我們的首選方案。
相關(guān)文章
ASP.NET中的Menu控件的應(yīng)用及XmlDataSource的了解
以前一直以為菜單都是通過sitemap制作的,最近看到項目中的方法是使用XmlDataSource榜定的,很是好奇,于是研究了一下,感覺還不錯哦,感興趣的朋友也可以了解下啊,或許本文所提供的對你學習有所幫助呢2013-02-02
.NET Core如何進行請求轉(zhuǎn)發(fā)的實現(xiàn)
這篇文章主要介紹了.NET Core如何進行請求轉(zhuǎn)發(fā)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
此頁的狀態(tài)信息無效,可能已損壞 的處理辦法及原因分析
此頁的狀態(tài)信息無效,可能已損壞 的處理辦法及原因分析,需要的朋友可以參考一下2013-06-06
ASP.NET實現(xiàn)License Key輸入功能的小例子
當我們安裝微軟的軟件,多數(shù)軟件是需要輸入license key。它有五個文本框,輸入完第一個文本框之后,光標自動跳至下一個文本框。 Insus.NET今天也使用asp.net來模仿一個。呵呵。2013-03-03
asp.net String.format中大括號的加入方法
String.format中大括號的加入方法,需要的朋友可以參考下。2010-05-05

