ResourceManager.GetResourceSet(CultureInfo, Boolean, Boolean) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
擷取特定文化特性設定的資源。
public:
virtual System::Resources::ResourceSet ^ GetResourceSet(System::Globalization::CultureInfo ^ culture, bool createIfNotExists, bool tryParents);
public virtual System.Resources.ResourceSet? GetResourceSet (System.Globalization.CultureInfo culture, bool createIfNotExists, bool tryParents);
public virtual System.Resources.ResourceSet GetResourceSet (System.Globalization.CultureInfo culture, bool createIfNotExists, bool tryParents);
abstract member GetResourceSet : System.Globalization.CultureInfo * bool * bool -> System.Resources.ResourceSet
override this.GetResourceSet : System.Globalization.CultureInfo * bool * bool -> System.Resources.ResourceSet
Public Overridable Function GetResourceSet (culture As CultureInfo, createIfNotExists As Boolean, tryParents As Boolean) As ResourceSet
參數
- culture
- CultureInfo
要擷取其資源的文化特性。
- createIfNotExists
- Boolean
要載入尚未載入的資源集合則為 true
;否則為 false
。
- tryParents
- Boolean
true
表示如果找不到資源集時,就要使用資源後援來載入適當的資源;false
表示要略過資源後援程序。
傳回
所指定文化特性的資源集。
例外狀況
culture
參數為 null
。
tryParents
為 true
,找不到一組可用的資源,也沒有預設文化特性資源。
範例
下列範例會呼叫 GetResourceSet 方法來擷取法文 (法國) 文化特性的特定文化特性資源。 然後它會列舉資源集中的所有資源。 它包含名為 ShowNumbers.exe 之可執行檔的原始程式碼。 它也包含下列兩個文本檔,其中包含數字的名稱。 第一個 NumberResources.txt 包含英文中一到十的數字名稱:
one=one
two=two
three=three
four=four
five=five
six=six
seven=seven
eight=eight
nine=nine
ten=ten
第二個 NumberResources.fr-FR.txt 包含法文語言中一到四的數字名稱:
one=un
two=deux
three=trois
four=quatre
您可以使用批次處理檔來產生資源檔、將英文語言資源檔內嵌至可執行檔,以及建立法文語言資源的附屬元件。 以下是使用 Visual Basic 編譯程式產生可執行檔的批處理檔:
resgen NumberResources.txt
vbc shownumbers.vb /resource:NumberResources.resources
md fr-FR
resgen NumberResources.fr-FR.txt
al /out:fr-FR\ShowNumbers.resources.dll /culture:fr-FR /embed:NumberResources.fr-FR.resources
針對 C# 編譯程式,您可以使用下列批次處理檔:
resgen NumberResources.txt
csc shownumbers.cs /resource:NumberResources.resources
md fr-FR
resgen NumberResources.fr-FR.txt
al /out:fr-FR\ShowNumbers.resources.dll /culture:fr-FR /embed:NumberResources.fr-FR.resources
using System;
using System.Globalization;
using System.Resources;
public class Example
{
public static void Main()
{
String[] numbers = { "one", "two", "three", "four", "five", "six",
"seven", "eight", "nine", "ten" };
var rm = new ResourceManager(typeof(NumberResources));
ResourceSet rs = rm.GetResourceSet(CultureInfo.CreateSpecificCulture("fr-FR"),
true, false);
if (rs == null) {
Console.WriteLine("No resource set.");
return;
}
foreach (var number in numbers)
Console.WriteLine("{0,-10} '{1}'", number + ":", rs.GetString(number));
}
}
internal class NumberResources {}
// The example displays the following output:
// one: 'un'
// two: 'deux'
// three: 'trois'
// four: 'quatre'
// five: ''
// six: ''
// seven: ''
// eight: ''
// nine: ''
// ten: ''
Imports System.Globalization
Imports System.Resources
Module Example
Public Sub Main()
Dim numbers() As String = { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" }
Dim rm As New ResourceManager(GetType(NumberResources))
Dim rs As ResourceSet = rm.GetResourceSet(CultureInfo.CreateSpecificCulture("fr-FR"), True, False)
If rs Is Nothing Then Console.WriteLine("No resource set.") : Exit Sub
For Each number In numbers
Console.WriteLine("{0,-10} '{1}'", number + ":", rs.GetString(number))
Next
End Sub
End Module
Public Class NumberResources
End Class
' The example displays the following output:
' one: 'un'
' two: 'deux'
' three: 'trois'
' four: 'quatre'
' five: ''
' six: ''
' seven: ''
' eight: ''
' nine: ''
' ten: ''
請注意,如果您將 自變數的值createIfNotExists
變更為 false
,則方法呼叫會傳null
回 ,因為 Resource Manager 尚未載入法文語言資源。
備註
傳回的資源集代表針對指定文化特性本地化的資源。 如果資源尚未針對該文化特性進行當地語系化,且 tryParents
為 true
, GetResourceSet 請使用資源後援規則來載入適當的資源。 如果為 tryParents
false
且找不到特定文化特性的資源集,則方法會傳 null
回 。 如需資源後援的詳細資訊,請參閱 封裝和部署資源 一文中的一節。