首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

.NET 資源檔完整應用指南:.resx 與 .resources 在 WinForm 與 ASP.NET 中的實作差異

     編輯:關於.NET

資源檔是 .NET 實現多語系與資源管理的核心機制。本文詳細比較 .resx (XML 文字格式) 與 .resources (二進位編譯格式) 的特性,並分別示範 Windows Forms 與 ASP.NET Web Forms 中的應用模式與命名慣例。

資源檔兩大格式

  • .resx:XML 文字格式,Visual Studio 提供設計工具編輯,適合版控與人工維護。
  • .resources:由 resgen.exe 編譯產生的二進位格式,執行期由 ResourceManager 載入,效能較佳。

手動編譯指令:resgen.exe Resource1.resx

Windows Forms 應用模式

  1. 資源檔與表單程式碼 (Form.cs、Form.Designer.cs) 以巢狀結構關聯顯示。
  2. 匯入既有 .resources 檔時,需將 Build Action 設為 Embedded Resource。
  3. 程式碼存取範例:
    Assembly asm = Assembly.GetExecutingAssembly();
    ResourceManager rm = new ResourceManager("TestStrongName123.Form1", asm);
    textBox1.Text = rm.GetString("First");

ASP.NET Web Forms 應用模式 (VS2005 新架構)

引入資源目錄概念,自動偵測無需手動設定 Embedded Resource:

  • 全域資源:置於 App_GlobalResources,檔名自訂 (如 GlobalResource.resx)。
  • 區域資源:置於 App_LocalResources,檔名必須對應頁面 (如 Default.aspx.resx)。

宣告式繫結 (標記語法)

<asp:Literal ID="Literal1" runat="server" Text="<%$ Resources:LocalString1 %>" />
<asp:Literal ID="Literal3" runat="server" Text="<%$ Resources:GlobalResource, GlobalString1 %>" />

程式碼存取

// 區域資源
Literal2.Text = (string)GetLocalResourceObject("LocalString2");

// 全域資源
Literal4.Text = (string)GetGlobalResourceObject("GlobalResource", "GlobalString2");

// 全域資源圖片
Bitmap bm = Resources.GlobalResource.GlobalSmallFail;

專案實務建議

公文系統採用客戶端控制項策略,伺服器端控制項極少,且全球化資源需求難以預判,故資源檔僅用於字串管理;圖片等二進位資源仍以檔案替換機制為主,不納入 .resx 管理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved