資源文件簡介
(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)制格式??梢允謩訉?.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)嵌資源),這樣的話,資源就會在你編譯后直接嵌入到你的應(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ū)別,也可以從他們對資源的保存形式來判斷,前者會將所有的資源都保存到該文件中,而后者只是會保存對資源的引用
在ASP.NET Web Application中的使用:
1.在此處應(yīng)用資源文件的時(shí)候可能與前面的使用方法略有不同,而且在VS2005中引入了新的使用方式,即資源文件夾的概念,即把全局資源與本地資源分別保存到App_GlobalResources和App_LocalResources目錄中,只要放到這兩個(gè)目錄中的資源文件,可以再根據(jù)自己的分類繼續(xù)進(jìn)行文件劃分,這個(gè)不影響工程找到資源文件,這里還要對資源文件的命名簡單介紹一下,全局資源只要保證其文件為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.其他一點(diǎn)說明:使用web site站點(diǎn)的時(shí)候,與這里的應(yīng)用也是類似的,這里就不贅述了。
4.針對公文系統(tǒng)來說,資源文件的使用比較局限,因?yàn)槲覀兊墓南到y(tǒng)采用的策略為使用客戶端控件,避免使用服務(wù)器端控件;再者,我們都餓應(yīng)用無法提前欲知情況(也就是全球化的資源思路),所以,鑒于此,我們系統(tǒng)中應(yīng)用資源文件的使用只能局限到對字符串等的使用,但是在圖片等方面可能無法達(dá)到我們的需求,使用圖片替換仍舊為我們的首選方案。