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

C# 資源檔建立與使用完整教學

     編輯:關於C語言

.resources 檔案簡介

.resources 為二進位資源格式,可儲存字串、圖片、圖示等資料。透過 ResourceWriter 建立、ResourceManager 讀取,適合部署時攜帶非程式碼資產。

建立資源檔

using System.Resources;
using System.Drawing;

public void CreateResourceFile()
{
    using (var writer = new ResourceWriter("MyResources.resources"))
    {
        // 加入字串
        writer.AddResource("AppTitle", "我的應用程式");
        writer.AddResource("WelcomeMsg", "歡迎使用!");

        // 加入圖片
        using (var img = Image.FromFile(@"F:\ym.jpg"))
        {
            writer.AddResource("Logo", img);
        }

        // 加入位元組陣列
        writer.AddResource("ConfigData", File.ReadAllBytes(@"F:\config.json"));

        writer.Generate(); // 寫入磁碟
    }
}

讀取資源檔

public void UseResources()
{
    // 方式 1:直接讀取 .resources 檔
    using (var reader = new ResourceReader("MyResources.resources"))
    {
        foreach (DictionaryEntry entry in reader)
        {
            Console.WriteLine($"{entry.Key} = {entry.Value}");
        }
    }

    // 方式 2:嵌入組件並透過 ResourceManager 存取(推薦)
    var rm = new ResourceManager("MyResources", Assembly.GetExecutingAssembly());
    string title = rm.GetString("AppTitle");
    Image logo = (Image)rm.GetObject("Logo");
    byte[] config = (byte[])rm.GetObject("ConfigData");
}

Visual Studio 整合方式(強型別資源)

  1. 專案右鍵 → Properties → Resources 頁籤
  2. 點選「建立強型別資源檔」
  3. 拖曳圖片、輸入字串、加入檔案
  4. 自動產生 Resources.resx 與 Resources.Designer.cs
  5. 程式碼中直接存取:Properties.Resources.Logo、Properties.Resources.AppTitle

進階主題

多語系支援

建立 Resources.zh-TW.resx、Resources.en-US.resx 等文化特性資源檔,ResourceManager 會依 Thread.CurrentUICulture 自動選擇。

資源檔壓縮與加密

// 自訂 ResourceReader/Writer 實作加密儲存
public class EncryptedResourceWriter : ResourceWriter
{
    // 覆寫 Generate() 加入加密邏輯
}

最佳實務

  • 優先使用強型別資源(Properties.Resources),獲得編譯期檢查與 IntelliSense
  • 大型二進位資源(影片、大圖)建議外部檔案載入,避免組件膨脹
  • 資源檔命名遵循 基底名稱.文化特性.resx 慣例
  • 定期清理未使用資源,減少部署體積
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved