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

C# 資源檔建立與使用完整指南

     編輯:關於C#

.NET 透過 .resources 檔案與 ResourceManager / ResourceWriter 類別管理嵌入資源(圖片、字串、序列化物件等)。本文示範建立資源檔、寫入資源、編譯嵌入組件、執行時期讀取的完整流程。

1. 程式碼建立 .resources 檔案

using System.Resources;
using System.Drawing;

string resPath = "MyResources.resources";
using (ResourceWriter writer = new ResourceWriter(resPath))
{
    writer.AddResource("Logo", Image.FromFile(@"F:\logo.png"));
    writer.AddResource("AppTitle", "我的應用程式");
    writer.AddResource("MaxConnections", 100);
    writer.Generate(); // 寫入磁碟
}

2. 將 .resources 嵌入組件

Visual Studio 專案右鍵 → Properties → Resources → Add Existing File 選擇 .resources 檔,或手動編輯 .csproj:

<ItemGroup>
  <EmbeddedResource Include="MyResources.resources" />
</ItemGroup>

3. 執行時期讀取資源

using System.Resources;
using System.Reflection;

ResourceManager rm = new ResourceManager("MyResources", Assembly.GetExecutingAssembly());

// 讀取圖片
Image logo = (Image)rm.GetObject("Logo");
button1.Image = logo;

// 讀取字串
string title = rm.GetString("AppTitle");

// 讀取數值
int maxConn = (int)rm.GetObject("MaxConnections");

4. 強型別資源類別

VS 內建資源設計器會自動產生 Resources.resx 對應的強型別類別 Properties.Resources:

// 直接以屬性存取,享有 IntelliSense 與型別安全
button1.Image = Properties.Resources.Logo;
string title = Properties.Resources.AppTitle;

5. 多語系當地語系化

  • 建立 Resources.resx(預設文化特性)
  • 建立 Resources.zh-TW.resx、Resources.en-US.resx 等文化特性專用資源檔
  • ResourceManager 會依 Thread.CurrentThread.CurrentUICulture 自動選擇對應資源

常見陷阱

  • 資源名稱區分大小寫:GetObject("Logo") ≠ GetObject("logo")
  • 嵌入資源 vs 內容檔案:嵌入資源編譯進 DLL,內容檔案以 Copy to Output Directory 輸出至建置目錄,二者用途不同。
  • 大型資源:超大圖片/影音建議外部檔案載入,避免組件膨脹影響載入效能。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved