Visual C# 應用程式中經常會包含非原始碼的資料。此類資料稱為“項目資源”,它可以包含應用程式所需的位元據、文字檔、音頻或視頻檔案、字串表、表徵圖、映像、XML 檔案或任何其他類型的資料。項目資源資料以 XML 格式儲存在 .resx 檔案中(預設檔案名稱為 Resources.resx),可在“方案總管”中開啟此檔案。有關項目資源的更多資訊,請參見使用資源檔。
向項目中添加資源
可以將資源添加到項目中,方法是:在“方案總管”中,在該項目下右擊“屬性”節點,單擊“開啟”,再單擊“專案設計工具”中“資源”頁上的“添加資源”按鈕。
可以將資源作為連結的資源(外部檔案)或內嵌資源(直接嵌入到 .resx 檔案中)添加到項目中。
有關更多資訊,請參見連結的資源與內嵌資源和.Resx 檔案格式中的資源。
編輯資源
關聯用於編輯各個資源的預設應用程式之後,資源設計器就允許您在開發過程中添加和修改項目資源。右擊“方案總管”中的“屬性”,然後單擊“開啟”,再單擊專案設計工具中的“資源”選項卡,可以訪問資源設計器。有關更多資訊,請參見“專案設計工具” ->“資源”頁。下面的圖示顯示了資源設計器菜單選項:
若要編輯內嵌資源,必須直接處理 .resx 檔案來操作每個字元或位元組。這就是為什麼在開發過程中將複雜檔案類型儲存為連結的資源更為方便的原因。可以使用 二進位編輯器 以十六進位或 ASCII 格式在二進位層級上編輯資源檔(包括 .resx 檔案)。可以使用 影像編輯器 編輯作為連結的資源儲存的表徵圖、游標以及 .jpeg 和 GIF 檔案。您還可以選擇使用其他應用程式作為這些檔案類型的編輯器。有關更多資訊,請參見在資源編輯器中查看和編輯資源。
將資源編譯為程式集
當您產生應用程式時,Visual Studio 會調用 resgen.exe 工具,將應用程式資源轉換為稱為 Resources 的內部類。此類包含在 Resources.Designer.cs 檔案中,而該檔案嵌套在“方案總管”中的 Resources.resx 檔案下。Resources 類將所有項目資源封裝到靜態唯讀 get
屬性中,作為在運行時提供強型別資源的方式。當通過 Visual C# IDE 進行產生時,所有封裝的資源資料(包括嵌入到 .resx
檔案中的資源和連結的檔案)都被直接編譯到應用程式程式集(.exe 或 .DLL 檔案)中。換句話說,Visual C# IDE 總是使用 /resource 編譯器選項。如果從命令列進行產生,則可以指定 /linkresource 編譯器選項,以便將資源部署為主應用程式程式集之外的單獨檔案。這是一種進階應用程式方案,僅在某些很少見的情況下才需要使用。將資源與主應用程式程式集分開部署的一種更為常見的方案是使用附屬組件,如下所述。
在運行時訪問資源
若要在運行時訪問資源,只需像引用任何其他類成員一樣引用該資源即可。下面的樣本顯示如何檢索名為 Image01 的位元影像資源。請注意,資源類位於名為 <項目名稱>.Properties 的命名空間中,因此,要麼每個資源都使用完全限定名,要麼在作為資源類訪問來源的源檔案中添加適當的 using 指令。
System.Drawing.Bitmap bitmap1 = myProject.Properties.Resources.Image01;
在內部,get 屬性使用 ResourceManager 類建立對象的新執行個體。
有關更多資訊,請參見應用程式中的資源和資源檔產生器 (Resgen.exe)。
附屬組件中的資源
如果您正在建立需要本地化(翻譯)為多種語言的應用程式,可以將每組
特定於地區性的字串作為資源儲存在它本身的附屬組件中。當您分發應用程式時,其中應包含主應用程式程式集和任何相應的附屬組件。然後您可以在不重新
編譯主應用程式程式集的情況下,添加其他附屬組件或修改現有的附屬組件。有關更多資訊,請參見建立附屬組件和定位和使用特定地區性的資源。
——————————————————————————————————————————————————————————————————
外部資源就是以檔案夾形式存放的,通過程式訪問的資源!