NeutralResourcesLanguageAttribute Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Tájékoztatja az erőforrás-kezelőt az alkalmazás alapértelmezett kultúrájáról. Ez az osztály nem örökölhető.
public ref class NeutralResourcesLanguageAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)]
public sealed class NeutralResourcesLanguageAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class NeutralResourcesLanguageAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)>]
type NeutralResourcesLanguageAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type NeutralResourcesLanguageAttribute = class
inherit Attribute
Public NotInheritable Class NeutralResourcesLanguageAttribute
Inherits Attribute
- Öröklődés
- Attribútumok
Példák
Az alábbi példa egy egyszerű "„Helló világ!” alkalmazás" alkalmazással szemlélteti a NeutralResourcesLanguageAttribute attribútum használatát egy alapértelmezett vagy tartalék kultúra definiálásához. Ehhez külön erőforrásfájlokat kell létrehozni az angol (en), az angol (Egyesült Államok) (en-US) és a francia (Franciaország) (fr-FR) kultúrákhoz. Az alábbiakban egy ExampleResources.txt nevű szövegfájl tartalmát mutatjuk be az angol kultúrához.
# Resources for the default (en) culture.
Greeting=Hello
Az erőforrásfájl alkalmazásbeli használatához a Resource File Generator (Resgen.exe) kell használnia, hogy a fájlt a szövegből (.txt) bináris (.resources) formátumba konvertálja az alábbiak szerint:
resgen ExampleResources.txt
Az alkalmazás lefordításakor a bináris erőforrásfájl a fő alkalmazásszerelvénybe lesz beágyazva.
Az alábbiakban egy ExampleResources.en-US.txt nevű szövegfájl tartalmát mutatjuk be, amely erőforrásokat biztosít az angol (Egyesült Államok) kultúrához.
# Resources for the en-US culture.
Greeting=Hi
A szövegfájl bináris erőforrásfájllá alakítható a parancssori erőforrásfájl-generátor (ResGen.exe) használatával az alábbiak szerint:
resgen ExampleResources.en-US.txt ExampleResources.en-US.resources
A bináris erőforrásfájlt ezután össze kell állítani egy szerelvénybe Assembly Linker (Al.exe) használatával, és az alkalmazáskönyvtár en-US alkönyvtárába kell helyezni az alábbi parancs kiadásával:
al /t:lib /embed:ExampleResources.en-US.resources /culture:en-US /out:en-us\Example.resources.dll
Az alábbiakban egy ExampleResources.fr-FR.txt nevű szövegfájl tartalmát mutatjuk be, amely forrásokat biztosít a francia (Franciaország) kultúrához.
# Resources for the fr-FR culture.
Greeting=Bonjour
A szövegfájl bináris erőforrásfájllá alakítható a parancssori ResGen.exe használatával az alábbiak szerint:
resgen ExampleResources.fr-FR.txt ExampleResources.fr-FR.resources
A bináris erőforrásfájlt ezután az Assembly Linker használatával kell összeállítani egy szerelvénybe, és az alkalmazáskönyvtár fr-FR alkönyvtárába kell helyezni az alábbi parancs kiadásával:
al /t:lib /embed:ExampleResources.fr-FR.resources /culture:fr-FR /out:fr-FR\Example.resources.dll
Az alábbi példa az aktuális kultúrát beállító végrehajtható kódot, a felhasználó nevének megadását kéri, és egy honosított sztringet jelenít meg.
using System;
using System.Globalization;
using System.Reflection;
using System.Resources;
using System.Threading;
[assembly: NeutralResourcesLanguageAttribute("en")]
public class Example
{
public static void Main()
{
// Select the current culture randomly to test resource fallback.
string[] cultures = { "de-DE", "en-us", "fr-FR" };
Random rnd = new Random();
int index = rnd.Next(0, cultures.Length);
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(cultures[index]);
Console.WriteLine($"The current culture is {CultureInfo.CurrentUICulture.Name}");
// Retrieve the resource.
ResourceManager rm = new ResourceManager("ExampleResources",
typeof(Example).Assembly);
string greeting = rm.GetString("Greeting");
Console.Write("Enter your name: ");
string name = Console.ReadLine();
Console.WriteLine($"{greeting} {name}!");
}
}
Imports System.Globalization
Imports System.Resources
Imports System.Threading
<Assembly:NeutralResourcesLanguageAttribute("en")>
Module Example
Public Sub Main()
' Select the current culture randomly to test resource fallback.
Dim cultures() As String = { "de-DE", "en-us", "fr-FR" }
Dim rnd As New Random()
Dim index As Integer = rnd.Next(0, cultures.Length)
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(cultures(index))
Console.WriteLine("The current culture is {0}",
CultureInfo.CurrentUICulture.Name)
' Retrieve the resource.
Dim rm As New ResourceManager("ExampleResources" , GetType(Example).Assembly)
Dim greeting As String = rm.GetString("Greeting")
Console.Write("Enter your name: ")
Dim name As String = Console.ReadLine()
Console.WriteLine("{0} {1}", greeting, name)
End Sub
End Module
Fordításához használja a következő parancsot a Visual Basicben:
vbc Example.vb /resource:ExampleResources.resources
vagy használja a következő parancsot a C#-ban:
csc Example.cs /resource:ExampleResources.resources
Megjegyzések
Az asztali alkalmazásokban a NeutralResourcesLanguageAttribute attribútum tájékoztatja az erőforrás-kezelőt az alkalmazás alapértelmezett kultúrájáról és az erőforrások helyéről. Alapértelmezés szerint az erőforrások a fő alkalmazásszerelvénybe vannak ágyazva, és az attribútumot az alábbiak szerint használhatja. Ez az utasítás azt határozza meg, hogy az angol (Egyesült Államok) az alkalmazás alapértelmezett kultúrája.
[assembly: NeutralResourcesLanguage("en-US")]
<Assembly:NeutralResourcesLanguage("en-US")>
A NeutralResourcesLanguageAttribute attribútummal azt is jelezheti, hogy ResourceManager hol találja az alapértelmezett kultúra erőforrásait, ha UltimateResourceFallbackLocation enumerálási értéket ad meg az attribútumutasításban. Ez a leggyakrabban annak jelzésére történik, hogy az erőforrások egy műholdas szerelvényben találhatók. Az alábbi utasítás például azt határozza meg, hogy az angol (Egyesült Államok) az alkalmazás alapértelmezett vagy semleges kultúrája, és hogy az erőforrásai egy műholdas szerelvényben találhatók. A ResourceManager objektum egy en-USnevű alkönyvtárban fogja keresni őket.
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
<Assembly:NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>
Jótanács
Javasoljuk, hogy mindig a NeutralResourcesLanguageAttribute attribútumot használja az alkalmazás alapértelmezett kultúrájának meghatározásához.
Az attribútum két szerepkört hajt végre:
Ha az alapértelmezett kultúra erőforrásai beágyazva vannak az alkalmazás főszerelvényébe, és ResourceManager le kell kérnie az alapértelmezett kultúrához tartozó erőforrásokat, a ResourceManager automatikusan a főszerelvényben található erőforrásokat használja ahelyett, hogy műholdas szerelvényt keres. Kikerüli a szokásos összeállítási vizsgálatot, javítja az első betöltendő erőforrás keresési teljesítményét, és csökkentheti a használatban lévő memória mennyiségét. Keresse meg a Erőforrások csomagolása és üzembe helyezése című részben a ResourceManager folyamat leírását az erőforrásfájlok keresésének módjáról.
Ha az alapértelmezett kultúra erőforrásai nem a fő alkalmazásszerelvényben, hanem egy műholdas szerelvényben találhatók, a NeutralResourcesLanguageAttribute attribútum határozza meg azt a kultúrát és könyvtárat, amelyből a futtatókörnyezet betöltheti az erőforrásokat.
Konstruktorok
| Name | Description |
|---|---|
| NeutralResourcesLanguageAttribute(String, UltimateResourceFallbackLocation) |
Inicializálja az osztály új példányát NeutralResourcesLanguageAttribute a megadott végső erőforrás-tartalékhelyen. |
| NeutralResourcesLanguageAttribute(String) |
Inicializálja a NeutralResourcesLanguageAttribute osztály új példányát. |
Tulajdonságok
| Name | Description |
|---|---|
| CultureName |
Lekéri a kultúra nevét. |
| Location |
Lekéri az osztály helyét a ResourceManager semleges erőforrások erőforrás-visszavételi folyamattal történő lekéréséhez. |
| TypeId |
Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap. (Öröklődés forrása Attribute) |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal. (Öröklődés forrása Attribute) |
| GetHashCode() |
A példány kivonatkódját adja vissza. (Öröklődés forrása Attribute) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| IsDefaultAttribute() |
Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke. (Öröklődés forrása Attribute) |
| Match(Object) |
Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e. (Öröklődés forrása Attribute) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Névkészletet képez le a küldési azonosítók megfelelő készletére. (Öröklődés forrása Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Lekéri egy objektum típusadatait, amelyek a felület típusadatainak lekérésére használhatók. (Öröklődés forrása Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1). (Öröklődés forrása Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz. (Öröklődés forrása Attribute) |