NeutralResourcesLanguageAttribute Classe

Definizione

Notifica alla gestione risorse le impostazioni cultura predefinite di un'applicazione. La classe non può essere ereditata.

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
Ereditarietà
NeutralResourcesLanguageAttribute
Attributi

Esempio

L'esempio seguente usa una semplice app "Hello World" per illustrare l'uso dell'attributo per definire impostazioni cultura predefinite NeutralResourcesLanguageAttribute o di fallback. Richiede la creazione di file di risorse separati per le impostazioni cultura inglese (en), inglese (Stati Uniti) (en-US) e francese (Francia) (fr-FR). Di seguito viene illustrato il contenuto di un file di testo denominato ExampleResources.txt per le impostazioni cultura inglese.

# Resources for the default (en) culture.  
Greeting=Hello  

Per usare il file di risorse in un'app, è necessario usare il generatore di file di risorse (Resgen.exe) per convertire il file dal formato di testo (.txt) in un formato binario (con estensione resources), come indicato di seguito:

resgen ExampleResources.txt  

Quando l'app viene compilata, il file di risorse binario verrà incorporato nell'assembly dell'app principale.

Di seguito viene illustrato il contenuto di un file di testo denominato ExampleResources.en-US.txt che fornisce risorse per le impostazioni cultura inglese (Stati Uniti).

# Resources for the en-US culture.  
Greeting=Hi  

Il file di testo può essere convertito in un file di risorse binario usando il generatore di file di risorse (ResGen.exe) dalla riga di comando come indicato di seguito:

resgen ExampleResources.en-US.txt ExampleResources.en-US.resources  

Il file di risorse binario deve quindi essere compilato in un assembly usando Assembly Linker (Al.exe) e inserito nella sottodirectory en-US della directory dell'app tramite il comando seguente:

al /t:lib /embed:ExampleResources.en-US.resources /culture:en-US /out:en-us\Example.resources.dll  

Di seguito viene illustrato il contenuto di un file di testo denominato ExampleResources.fr-FR.txt che fornisce le risorse per le impostazioni cultura francese (Francia).

# Resources for the fr-FR culture.  
Greeting=Bonjour  

Il file di testo può essere convertito in un file di risorse binario usando ResGen.exe riga di comando come indicato di seguito:

resgen ExampleResources.fr-FR.txt ExampleResources.fr-FR.resources  

Il file di risorse binarie deve quindi essere compilato in un assembly usando Assembly Linker e inserito nella sottodirectory fr-FR della directory dell'app tramite il comando seguente:

al /t:lib /embed:ExampleResources.fr-FR.resources /culture:fr-FR /out:fr-FR\Example.resources.dll  

Nell'esempio seguente viene fornito il codice eseguibile che imposta le impostazioni cultura correnti, richiede il nome dell'utente e visualizza una stringa localizzata.

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 {0}",
                        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("{0} {1}!", greeting, name);
   }
}
Imports System.Globalization
Imports System.Reflection
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

Può essere compilato usando il comando seguente in Visual Basic:

vbc Example.vb /resource:ExampleResources.resources  

o usando il comando seguente in C#:

csc Example.cs /resource:ExampleResources.resources  

Commenti

App desktop

Nelle app desktop, l'attributo indica al gestore di risorse le impostazioni cultura predefinite di un'app e il NeutralResourcesLanguageAttribute percorso delle relative risorse. Per impostazione predefinita, le risorse sono incorporate nell'assembly principale dell'app ed è possibile usare l'attributo come indicato di seguito. Questa istruzione specifica che la lingua inglese (Stati Uniti) sono le impostazioni cultura predefinite dell'app.

using System.Resources;

[assembly:NeutralResourcesLanguage("en-US")]
Imports System.Resources

<Assembly:NeutralResourcesLanguage("en-US")>

È anche possibile usare l'attributo per indicare dove è possibile trovare le risorse delle impostazioni cultura predefinite fornendo un valore di NeutralResourcesLanguageAttribute ResourceManager enumerazione UltimateResourceFallbackLocation nell'istruzione dell'attributo . Questa operazione viene in genere eseguita per indicare che le risorse si trovano in un assembly satellite. Ad esempio, l'istruzione seguente specifica che l'inglese (Stati Uniti) è le impostazioni cultura predefinite o neutre dell'app e che le relative risorse risiedono in un assembly satellite. ResourceManagerL'oggetto li cerca in una sottodirectory denominata en-US.

using System.Resources;

[assembly:NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
Imports System.Resources

<Assembly:NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>

Suggerimento

È consigliabile usare sempre NeutralResourcesLanguageAttribute l'attributo per definire le impostazioni cultura predefinite dell'app.

L'attributo esegue due ruoli:

  • Se le risorse delle impostazioni cultura predefinite sono incorporate nell'assembly principale dell'app e devono recuperare le risorse che appartengono alle stesse impostazioni cultura predefinite, usa automaticamente le risorse che si trovano nell'assembly principale anziché cercare un ResourceManager ResourceManager assembly satellite. In questo modo si ignora il probe di assembly consueto, si migliorano le prestazioni di ricerca per la prima risorsa caricata e si può ridurre la working set. Vedere Creazione di pacchetti e distribuzione di risorse per il processo che usa per verificare la disponibilità di file di ResourceManager risorse.

  • Se le risorse delle impostazioni cultura predefinite si trovano in un assembly satellite anziché nell'assembly principale dell'app, l'attributo specifica le impostazioni cultura e la directory da cui il runtime può caricare NeutralResourcesLanguageAttribute le risorse.

app Windows 8.x Store

Nelle app Windows 8.x Store le cui risorse vengono caricate e recuperate usando la classe , l'attributo definisce le impostazioni cultura neutre le cui risorse vengono usate in caso di probe non ResourceManager NeutralResourcesLanguageAttribute riuscito. Non specifica il percorso delle risorse. Per impostazione predefinita, usa il file di indice delle risorse del pacchetto ResourceManager (PRI) dell'app per individuare le risorse delle impostazioni cultura predefinite. Le impostazioni cultura neutre definite dall'attributo vengono aggiunte alla fine dell'elenco delle lingue dell'interfaccia NeutralResourcesLanguageAttribute utente per simulare questo effetto.

Se si caricano e si recuperano risorse usando Windows RuntimeWindows. Classe ApplicationModel.Resources.ResourceLoader o tipi nel Windows. Spazio dei nomi ApplicationModel.Resources.Core, NeutralResourcesLanguageAttribute l'attributo viene ignorato.

Costruttori

NeutralResourcesLanguageAttribute(String)

Inizializza una nuova istanza della classe NeutralResourcesLanguageAttribute.

NeutralResourcesLanguageAttribute(String, UltimateResourceFallbackLocation)

Inizializza una nuova istanza della classe NeutralResourcesLanguageAttribute con il percorso della risorsa di fallback finale.

Proprietà

CultureName

Ottiene il nome delle impostazioni cultura.

Location

Ottiene il percorso della classe ResourceManager da usare per recuperare le risorse neutre usando il processo di fallback delle risorse.

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.

(Ereditato da Attribute)

Metodi

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per l'istanza.

(Ereditato da Attribute)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.

(Ereditato da Attribute)
Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.

(Ereditato da Attribute)

Si applica a

Vedi anche