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

ASP.NET 資源檔建立與使用完整教學:嵌入資源、ResourceManager、多型別資源存取

     編輯:ASP.NET 基礎

前言

.NET 組件可內嵌圖片、圖示、字串表等資源,達成封裝、重用與本地化。本文涵蓋兩種建立方式(ResGen 命令列、ResourceWriter 程式碼)、Visual Studio 嵌入設定、ResourceManager 存取模式,並附完整 Windows Forms 範例。

建立資源檔兩大途徑

方式一:ResGen.exe(命令列)

  1. 建立文字檔 userinfo.txt,格式 Key="Value":
Username="Songh"
Sex="Boy"
Birthday="1973-01-15"
Salary="5000RMB"
  1. 轉換為 .resources:
ResGen userinfo.txt
  1. 可再轉為 XML 格式 .resx:
ResGen userinfo.resources userinfo.resx

限制:不支援圖片等二進位資源。

方式二:ResourceWriter 程式碼(支援多型別)

using System.Resources;
using System.Drawing;

var rw = new ResourceWriter("userinfo.resources");
rw.AddResource("Photo", Image.FromFile("photo.gif")); // 圖片
rw.AddResource("Username", "songh");
rw.AddResource("Sex", "boy");
rw.AddResource("Birthday", "1973-01-15");
rw.AddResource("Salary", "5000RMB");
rw.Close(); // 隱式呼叫 Generate()
  • AddResource(string, object) 多載支援字串、圖片、圖示、自訂序列化物件。
  • 單一資源檔最大 2 GB。

Visual Studio 專案嵌入資源

  1. 專案右鍵 → 加入現有項目 選取 .resources。
  2. 方案總管選取檔案 → 屬性 → 建置動作 設為 Embedded Resource。
  3. 編譯後資源內嵌於組件(.dll/.exe)中。

ResourceManager 存取資源

using System.Reflection;
using System.Resources;

var asm = Assembly.GetExecutingAssembly();
// 根名稱 = 預設命名空間 + "." + 資源檔名(不含副檔名)
var rm = new ResourceManager("MyProject.Userinfo", asm);

// 取得字串
string name = rm.GetString("Username");

// 取得圖片/圖示(需轉型)
Image img = (Image)rm.GetObject("Photo");
Icon ico = (Icon)rm.GetObject("IconKey");

根名稱規則:DefaultNamespace.ResourceFileName。可用 asm.GetManifestResourceNames() 列舉實際名稱除錯。

進階:列舉組件所有內嵌資源

foreach (string resName in asm.GetManifestResourceNames())
{
    using (var stream = asm.GetManifestResourceStream(resName))
    using (var reader = new ResourceReader(stream))
    {
        foreach (DictionaryEntry entry in reader)
        {
            Console.WriteLine($"{entry.Key} = {entry.Value}");
        }
    }
}

完整 Windows Forms 範例

表單含 PictureBox、四個 TextBox、四個 Button,分別載入圖片 1、圖片 2、圖示、字串。程式碼見原文,核心邏輯為按鈕事件中建立 ResourceManager 並指派資源給控制項。

總結

  • 簡單字串表 → .resx + Visual Studio 設計器(強型別生成)。
  • 需程式動態產生/包含二進位 → ResourceWriter。
  • 執行階段存取 → ResourceManager + 根名稱。
  • 本地化 → 建立 Resources.zh-TW.resx 等文化特性檔,ResourceManager 自動依 CurrentUICulture 落選。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved