Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés
Ez a cikk kiegészítő megjegyzéseket tartalmaz az API referenciadokumentációjához.
A IgnoreCase tulajdonság azt határozza meg, hogy az name és az erőforrások neveinek összehasonlítása kis- és nagybetűk különbségét figyelmen kívül hagyja (alapértelmezett) vagy megkülönbözteti-e a kis- és nagybetűket.
Megjegyzés
A GetString metódusok a felsoroltaknál több kivételt is tartalmazhatnak. Ennek egyik oka az lehet, ha egy metódus, amelyet ez a metódus hív, kivételt eredményez. Előfordulhat például, hogy egy FileLoadException kivétel akkor jelenik meg, ha hiba történt egy műholdas szerelvény üzembe helyezésekor vagy telepítésekor, vagy SerializationException kivétel akkor fordulhat elő, ha egy felhasználó által definiált típus felhasználó által meghatározott kivételt ad a típus deszerializálásakor.
GetString(String) módszer
Asztali alkalmazások
Az asztali alkalmazásokban a visszaadott erőforrás az aktuális szál felhasználói felületi kultúrájához van honosítva a tulajdonság által CultureInfo.CurrentUICulture meghatározott módon. Ha az erőforrás nincs honosítva az adott kultúrához, az erőforrás-kezelő az Erőforrások csomagolása és üzembe helyezése című cikk "Erőforrás-tartalékfolyamat" szakaszában ismertetett lépések végrehajtásával mintavételez egy erőforrást. Ha nem található használható honosított erőforráskészlet, az erőforrás-kezelő visszaesik az alapértelmezett kultúra erőforrásaira. Ha az erőforrás-kezelő nem tudja betölteni az alapértelmezett kultúra erőforráskészletét, a metódus MissingManifestResourceException kivételt dobhat, vagy ha az erőforráskészlet várhatóan egy műholdas szerelvényben található, MissingSatelliteAssemblyException kivételt dobhat. Ha az erőforrás-kezelő betölthet egy megfelelő erőforráskészletet, de nem talál egy namenevű erőforrást, a metódus nullad vissza.
Windows 8.x-alkalmazások
Fontos
Bár a ResourceManager osztály támogatott a Windows 8.x-alkalmazásokban, nem javasoljuk a használatát. Ezt az osztályt csak akkor használja, ha a Windows 8.x-alkalmazásokkal használható hordozható osztálytár-projekteket fejleszt. Ha a Windows 8.x-alkalmazásokból szeretne erőforrásokat lekérni, használja inkább a Windows.ApplicationModel.Resources.ResourceLoader osztályt.
A Windows 8.x-alkalmazásokban a GetString(String) metódus visszaadja a name sztringerőforrás értékét, amely a hívó aktuális felhasználói felületi kulturális beállításaihoz van honosítva. A kultúrák listája az operációs rendszer által előnyben részesített felhasználói felület nyelvlistájából származik. Ha az erőforrás-kezelő nem talál egyezést name, a metódus visszaadja null.
Példa
Az alábbi példa a GetString metódust használja a kultúraspecifikus erőforrások lekéréséhez. Az .txt angol (en), francia (franciaországi) (fr-FR) és orosz (ru-RU) kultúrák fájljaiból összeállított erőforrásokból áll. A példa a jelenlegi kultúrát és a jelenlegi felhasználói felületi kultúrát angol (Egyesült Államok), francia (Franciaország), orosz (Oroszország) és svéd (Svédország) nyelvre módosítja. Ezután meghívja a GetString metódust a honosított karakterlánc lekéréséhez, amelyet az aktuális nap és hónap megjelenítésével együtt jelenít meg. Figyelje meg, hogy a kimenet a megfelelő honosított sztringet jeleníti meg, kivéve, ha a jelenlegi felhasználói felületi kultúra svéd (Svédország). Mivel a svéd nyelvű erőforrások nem érhetők el, az alkalmazás ehelyett az alapértelmezett kultúra erőforrásait használja, amely angol. A példához a következő táblázatban felsorolt szövegalapú erőforrásfájlok szükségesek. Mindegyik egy DateStartnevű karakterlánc erőforrással rendelkezik.
| Kulturális környezet | Fájlnév | Erőforrás neve | Erőforrás-érték |
|---|---|---|---|
| en-US | DateStrings.txt | DateStart |
Ma van |
| fr-FR | DateStrings.fr-FR.txt | DateStart |
Aujourd'hui, c'est le |
| ru-RU | DateStrings.ru-RU.txt | DateStart |
Сегодня |
A C# példa fordításához az alábbi kötegfájlt használhatja. Visual Basic esetén módosítsa a cscvbc, és módosítsa a forráskódfájl kiterjesztését .cs-ról .vb- ra.
resgen DateStrings.txt
csc showdate.cs /resource:DateStrings.resources
md fr-FR
resgen DateStrings.fr-FR.txt
al /out:fr-FR\Showdate.resources.dll /culture:fr-FR /embed:DateStrings.fr-FR.resources
md ru-RU
resgen DateStrings.ru-RU.txt
al /out:ru-RU\Showdate.resources.dll /culture:ru-RU /embed:DateStrings.ru-RU.resources
A példa forráskódja (a Visual Basic verzió ShowDate.vb vagy a C#-verzió ShowDate.cs).
using System;
using System.Globalization;
using System.Resources;
using System.Threading;
public class Example
{
public static void Main()
{
string[] cultureNames = [ "en-US", "fr-FR", "ru-RU", "sv-SE" ];
ResourceManager rm = new ResourceManager("DateStrings",
typeof(Example).Assembly);
foreach (var cultureName in cultureNames) {
CultureInfo culture = CultureInfo.CreateSpecificCulture(cultureName);
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
Console.WriteLine($"Current UI Culture: {CultureInfo.CurrentUICulture.Name}");
string dateString = rm.GetString("DateStart");
Console.WriteLine($"{dateString} {DateTime.Now:M}.\n");
}
}
}
// The example displays output similar to the following:
// Current UI Culture: en-US
// Today is February 03.
//
// Current UI Culture: fr-FR
// Aujourd'hui, c'est le 3 février
//
// Current UI Culture: ru-RU
// Сегодня февраля 03.
//
// Current UI Culture: sv-SE
// Today is den 3 februari.
Imports System.Globalization
Imports System.Resources
Imports System.Threading
<Assembly:NeutralResourcesLanguage("en")>
Module Example
Public Sub Main()
Dim cultureNames() As String = { "en-US", "fr-FR", "ru-RU", "sv-SE" }
Dim rm As New ResourceManager("DateStrings",
GetType(Example).Assembly)
For Each cultureName In cultureNames
Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture(cultureName)
Thread.CurrentThread.CurrentCulture = culture
Thread.CurrentThread.CurrentUICulture = culture
Console.WriteLine("Current UI Culture: {0}",
CultureInfo.CurrentUICulture.Name)
Dim dateString As String = rm.GetString("DateStart")
Console.WriteLine("{0} {1:M}.", dateString, Date.Now)
Console.WriteLine()
Next
End Sub
End Module
' The example displays output similar to the following:
' Current UI Culture: en-US
' Today is February 03.
'
' Current UI Culture: fr-FR
' Aujourd'hui, c'est le 3 février
'
' Current UI Culture: ru-RU
' Сегодня февраля 03.
'
' Current UI Culture: sv-SE
' Today is den 3 februari.
GetString(String, CultureInfo) módszer
Asztali alkalmazások
Asztali alkalmazásokban, ha culturenull állapotban van, a GetString(String, CultureInfo) metódus a CultureInfo.CurrentUICulture tulajdonságból beszerzett aktuális felhasználói felületi kultúrát használja.
A visszaadott erőforrás a paraméter által culture megadott kultúrához van honosítva. Ha az erőforrás nincs honosítva culture, az erőforrás-kezelő az erőforrás felkutatását az Erőforrások csomagolása és üzembe helyezése témakör "Erőforrás-visszaesési folyamat" szakaszában ismertetett lépések végrehajtásával végzi el. Ha nem található használható erőforráskészlet, az erőforrás-kezelő visszaesik az alapértelmezett kultúra erőforrásaira. Ha az erőforrás-kezelő nem tudja betölteni az alapértelmezett kultúra erőforráskészletét, a metódus MissingManifestResourceException kivételt dobhat, vagy ha az erőforráskészlet várhatóan egy műholdas szerelvényben található, MissingSatelliteAssemblyException kivételt dobhat. Ha az erőforrás-kezelő betölthet egy megfelelő erőforráskészletet, de nem talál egy namenevű erőforrást, a metódus nullad vissza.
Windows 8.x-alkalmazások
Fontos
Bár a ResourceManager osztály támogatott a Windows 8.x-alkalmazásokban, nem javasoljuk a használatát. Ezt az osztályt csak akkor használja, ha a Windows 8.x-alkalmazásokkal használható hordozható osztálytár-projekteket fejleszt. Ha a Windows 8.x-alkalmazásokból szeretne erőforrásokat lekérni, használja inkább a Windows.ApplicationModel.Resources.ResourceLoader osztályt.
A Windows 8.x-alkalmazásokban a GetString(String, CultureInfo) metódus a name paraméter által megadott kulturális környezet számára honosított culture karakterlánc-erőforrás értékét adja vissza. Ha az erőforrás nincs honosítva a culture kultúrához, a keresés a Windows 8 teljes nyelvi tartaléklistáját használja, és az alapértelmezett kultúra keresése után leáll. Ha az erőforrás-kezelő nem talál egyezést name, a metódus visszaadja null.
Példa
Az alábbi példa a GetString(String, CultureInfo) metódust használja a kultúraspecifikus erőforrások lekéréséhez. A példa alapértelmezett kultúrája az angol (en), valamint tartalmaz műholdas könyvtárakat a francia (Franciaország) (fr-FR) és orosz (Oroszország) (ru-RU) kultúrákhoz. A példa a hívás előtt oroszra (Oroszország) módosítja a jelenlegi kultúrát és a jelenlegi felhasználói felületi kultúrát GetString(String, CultureInfo). Ezután meghívja a GetString módszert és a DateTime.ToString(String, IFormatProvider) módszert, és átadja CultureInfo a francia (Franciaország) és svéd (Svédország) kultúrákat képviselő tárgyakat minden módszernek. A kimenetben a hónap és a hónap napja, valamint az azt megelőző sztring francia nyelven jelenik meg, mivel a GetString metódus képes lekérni a francia nyelvi erőforrást. A svéd (Svédország) kultúra használata esetén azonban a hónap és a nap svéd nyelven jelenik meg, bár az azt megelőző sztring angolul van. Ennek az az oka, hogy az erőforrás-kezelő nem találja a honosított svéd nyelvű erőforrásokat, ezért ehelyett az alapértelmezett angol kultúra erőforrását adja vissza.
A példához a következő táblázatban felsorolt szövegalapú erőforrásfájlok szükségesek. Mindegyik egy DateStartnevű karakterlánc erőforrással rendelkezik.
| Kulturális környezet | Fájlnév | Erőforrás neve | Erőforrás-érték |
|---|---|---|---|
| en-US | DateStrings.txt | DateStart |
Ma van |
| fr-FR | DateStrings.fr-FR.txt | DateStart |
Aujourd'hui, c'est le |
| ru-RU | DateStrings.ru-RU.txt | DateStart |
Сегодня |
A Visual Basic-példa fordításához az alábbi kötegfájlt használhatja. A C#-ban való fordításhoz módosítsa a vbc-t csc-re, és változtassa meg a forráskódfájl kiterjesztését .vb-ról .cs-ra.
resgen DateStrings.txt
vbc showdate.vb /resource:DateStrings.resources
md fr-FR
resgen DateStrings.fr-FR.txt
al /out:fr-FR\Showdate.resources.dll /culture:fr-FR /embed:DateStrings.fr-FR.resources
md ru-RU
resgen DateStrings.ru-RU.txt
al /out:ru-RU\Showdate.resources.dll /culture:ru-RU /embed:DateStrings.ru-RU.resources
A példa forráskódja (a Visual Basic verzió ShowDate.vb vagy a C#-verzió ShowDate.cs).
using System;
using System.Globalization;
using System.Resources;
using System.Threading;
public class Example2
{
public static void Main()
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ru-RU");
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU");
string[] cultureNames = [ "fr-FR", "sv-SE" ];
ResourceManager rm = new ResourceManager("DateStrings",
typeof(Example).Assembly);
foreach (var cultureName in cultureNames)
{
CultureInfo culture = CultureInfo.CreateSpecificCulture(cultureName);
string dateString = rm.GetString("DateStart", culture);
Console.WriteLine($"{culture.DisplayName}: {dateString} {DateTime.Now.ToString("M", culture)}.");
Console.WriteLine();
}
}
}
// The example displays output similar to the following:
// French (France): Aujourd'hui, c'est le 7 février.
//
// Swedish (Sweden): Today is den 7 februari.
Imports System.Globalization
Imports System.Resources
Imports System.Threading
Module Example2
Public Sub Main()
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ru-RU")
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU")
Dim cultureNames() As String = {"fr-FR", "sv-SE"}
Dim rm As New ResourceManager("DateStrings",
GetType(Example).Assembly)
For Each cultureName In cultureNames
Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture(cultureName)
Dim dateString As String = rm.GetString("DateStart", culture)
Console.WriteLine("{0}: {1} {2}.", culture.DisplayName, dateString,
Date.Now.ToString("M", culture))
Console.WriteLine()
Next
End Sub
End Module
' The example displays output similar to the following:
' French (France): Aujourd'hui, c'est le 7 février.
'
' Swedish (Sweden): Today is den 7 februari.