ResXResourceSet 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示 XML 資源 (.resx) 檔中的所有資源。
public ref class ResXResourceSet : System::Resources::ResourceSet
public class ResXResourceSet : System.Resources.ResourceSet
type ResXResourceSet = class
inherit ResourceSet
Public Class ResXResourceSet
Inherits ResourceSet
- 繼承
範例
下列範例會具現化 ResXResourceSet 物件,並說明如何列舉其資源,並依名稱擷取個別資源。 針對其列舉的每個資源,此範例會根據資源的值是字串或物件,在呼叫 GetString
或 GetObject
方法時使用 IDictionaryEnumerator.Key 屬性。
using System;
using System.Collections;
using System.Drawing;
using System.Resources;
public class Example
{
public static void Main()
{
CreateResXFile();
ResXResourceSet resSet = new ResXResourceSet(@".\StoreResources.resx");
IDictionaryEnumerator dict = resSet.GetEnumerator();
while (dict.MoveNext()) {
string key = (string) dict.Key;
// Retrieve resource by name.
if (dict.Value is string)
Console.WriteLine("{0}: {1}", key, resSet.GetString(key));
else
Console.WriteLine("{0}: {1}", key, resSet.GetObject(key));
}
}
private static void CreateResXFile()
{
Bitmap logo = new Bitmap(@".\Logo.bmp");
ResXDataNode node;
ResXResourceWriter rw = new ResXResourceWriter(@".\StoreResources.resx");
node = new ResXDataNode("Logo", logo);
node.Comment = "The corporate logo.";
rw.AddResource(node);
rw.AddResource("AppTitle", "Store Locations");
node = new ResXDataNode("nColumns", 5);
node.Comment = "The number of columns in the Store Location table";
rw.AddResource(node);
rw.AddResource("City", "City");
rw.AddResource("State", "State");
rw.AddResource("Code", "Zip Code");
rw.AddResource("Telephone", "Phone");
rw.Generate();
rw.Close();
}
}
// The example displays the following output:
// Telephone: Phone
// Code: Zip Code
// State: State
// City: City
// nColumns: 5
// AppTitle: Store Locations
// Logo: System.Drawing.Bitmap
Imports System.Collections
Imports System.Drawing
Imports System.Resources
Module Example
Public Sub Main()
CreateResXFile()
Dim resSet As New ResXResourceSet(".\StoreResources.resx")
Dim dict As IDictionaryEnumerator = resSet.GetEnumerator()
Do While dict.MoveNext()
Dim key As String = CStr(dict.Key)
' Retrieve resource by name.
If typeof dict.Value Is String Then
Console.WriteLine("{0}: {1}", key, resSet.GetString(key))
Else
Console.WriteLine("{0}: {1}", key, resSet.GetObject(key))
End If
Loop
End Sub
Private Sub CreateResXFile()
Dim logo As New Bitmap(".\Logo.bmp")
Dim node As ResXDataNode
Dim rw As New ResXResourceWriter(".\StoreResources.resx")
node = New ResXDataNode("Logo", logo)
node.Comment = "The corporate logo."
rw.AddResource(node)
rw.AddResource("AppTitle", "Store Locations")
node = New ResXDataNode("nColumns", 5)
node.Comment = "The number of columns in the Store Location table"
rw.AddResource(node)
rw.AddResource("City", "City")
rw.AddResource("State", "State")
rw.AddResource("Code", "Zip Code")
rw.AddResource("Telephone", "Phone")
rw.Generate()
rw.Close()
End Sub
End Module
' The example displays the following output:
' Telephone: Phone
' Code: Zip Code
' State: State
' City: City
' nColumns: 5
' AppTitle: Store Locations
' Logo: System.Drawing.Bitmap
此範例會 CreateResXFile
呼叫 方法來建立必要的 XML 資源檔。 在範例執行所在的目錄中,它需要名為 Logo.bmp 的位圖檔案。
備註
重要
使用不信任的資料呼叫此類別的方法,會造成安全性上的風險。 呼叫此類別的方法時,請一律使用信任的資料。 如需詳細資訊,請參閱 驗證所有輸入。
類別 ResXResourceSet 會列舉 IResourceReader、載入每個名稱和值,並將其儲存在哈希表中。 然後,您可以列舉 物件中的 ResXResourceSet 資源,或依名稱擷取個別資源。
ResXResourceSet物件提供方便的方式,將 .resx 檔案中的所有資源讀取到記憶體中。 當 .resx 檔案已讀取到 ResXResourceSet 實例時,您可以使用 GetObject 方法來擷取特定資源。
給繼承者的注意事項
使用自己的資源讀取器和寫入器的衍生類別 ResXResourceSet 應該覆寫 GetDefaultReader() 和 GetDefaultWriter() 方法,以提供適當的功能來解譯 ResXResourceSet 實例。
建構函式
ResXResourceSet(Stream) |
使用系統預設的 ResXResourceReader 從指定資料流讀取資源,初始化 ResXResourceSet 類別的新執行個體。 |
ResXResourceSet(String) |
使用系統預設值ResXResourceReader,從指定的檔案開啟和讀取資源,初始化 類別的新實例ResXResourceSet。 |
欄位
Reader |
表示用來讀取資源的 IResourceReader。 (繼承來源 ResourceSet) |
Table |
用來儲存資源的 Hashtable。 (繼承來源 ResourceSet) |
方法
Close() |
關閉並釋出這個 ResourceSet 所使用的任何資源。 (繼承來源 ResourceSet) |
Dispose() |
處置 ResourceSet 之目前執行個體所使用的資源 (除了記憶體之外)。 (繼承來源 ResourceSet) |
Dispose(Boolean) |
將與目前執行個體相關聯的資源 (除了記憶體以外) 釋出,並於要求時關閉內部 Managed 物件。 (繼承來源 ResourceSet) |
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetDefaultReader() |
傳回這種 ResXResourceSet 的慣用資源讀取器類別。 |
GetDefaultWriter() |
傳回這種 ResXResourceSet 的慣用資源寫入器類別。 |
GetEnumerator() |
傳回可以逐一查看 ResourceSet 的 IDictionaryEnumerator。 (繼承來源 ResourceSet) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetObject(String) |
以指定的名稱搜尋資源物件。 (繼承來源 ResourceSet) |
GetObject(String, Boolean) |
如果要求的話,以不區分大小寫的指定名稱搜尋資源物件。 (繼承來源 ResourceSet) |
GetString(String) |
以指定的名稱搜尋 String 資源。 (繼承來源 ResourceSet) |
GetString(String, Boolean) |
如果要求的話,以不區分大小寫的指定名稱搜尋 String 資源。 (繼承來源 ResourceSet) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ReadResources() |
讀取所有資源,並將它們儲存在 Hashtable 屬性指定的 Table 中。 (繼承來源 ResourceSet) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |
明確介面實作
IEnumerable.GetEnumerator() |
傳回 IEnumerator 物件,以避免與 |
擴充方法
Cast<TResult>(IEnumerable) |
將 IEnumerable 的項目轉換成指定的型別。 |
OfType<TResult>(IEnumerable) |
根據指定的型別來篩選 IEnumerable 的項目。 |
AsParallel(IEnumerable) |
啟用查詢的平行化作業。 |
AsQueryable(IEnumerable) |
將 IEnumerable 轉換成 IQueryable。 |