NeutralResourcesLanguageAttribute Osztály

Definíció

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
NeutralResourcesLanguageAttribute
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)

A következőre érvényes:

Lásd még