Linguaggio

CultureAndRegionInfoBuilder Classe

Definizione

Definisce impostazioni cultura personalizzate nuove o basate su altre impostazioni cultura e paese/area geografica. Le impostazioni cultura personalizzate possono essere installate in un computer e successivamente usate da qualsiasi applicazione in esecuzione in tale computer. La classe non può essere ereditata.

public ref class CultureAndRegionInfoBuilder sealed
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class CultureAndRegionInfoBuilder
[<System.Runtime.InteropServices.ComVisible(false)>]
type CultureAndRegionInfoBuilder = class
Public NotInheritable Class CultureAndRegionInfoBuilder
Ereditarietà
CultureAndRegionInfoBuilder
Attributi

Commenti

La CultureInfo classe contiene informazioni specifiche della cultura, ad esempio la lingua associata, la sottolingua, il paese/regione, il calendario e le convenzioni culturali. Questa classe fornisce anche istanze specifiche della cultura delle classi DateTimeFormatInfo, NumberFormatInfo, CompareInfo e TextInfo, necessarie per operazioni specifiche della cultura, ad esempio maiuscole e minuscole, formattazione e analisi di date e numeri e confronto di stringhe.

Per impostazione predefinita, .NET Framework supporta CultureInfo oggetti che rappresentano un set predefinito di impostazioni cultura. Per un elenco di queste impostazioni culturali disponibili nei sistemi Windows, consulta la colonna Tag lingua nell'elenco dei nomi di lingua/area geografica supportati da Windows. I nomi delle culture seguono lo standard definito da BCP 47. La classe CultureAndRegionInfoBuilder consente di creare una cultura personalizzata che è completamente nuova o che sovrascrive una cultura predefinita. Quando vengono installate e registrate impostazioni cultura personalizzate in un determinato computer, diventa indistinguibile da oggetti predefiniti CultureInfo e può essere creata un'istanza e usata esattamente come tali oggetti.

Importante

Si noti che la CultureAndRegionInfoBuilder classe si trova in un assembly denominato sysglobl.dll. Per compilare correttamente il codice che usa questo tipo è necessario aggiungere un riferimento a sysglobl.dll.

Le culture personalizzate possono essere registrate in un computer solo da un utente che dispone di diritti amministrativi su tale computer. Di conseguenza, le app in genere non creano e installano impostazioni cultura personalizzate. È invece possibile usare la CultureAndRegionInfoBuilder classe per creare uno strumento speciale che un amministratore può usare per creare, installare e registrare impostazioni cultura personalizzate. Dopo aver registrato la cultura personalizzata in un computer, è possibile usare la classe CultureInfo nell'app per creare istanze della cultura personalizzata proprio come faresti per una cultura predefinita.

Se si analizzano le stringhe di data e ora generate per impostazioni cultura personalizzate, è consigliabile usare il DateTime.ParseExact metodo o DateTime.TryParseExact anziché il DateTime.Parse metodo o DateTime.TryParse per migliorare la probabilità che l'operazione di analisi abbia esito positivo. Una stringa di data e ora per una cultura personalizzata può essere complessa e quindi difficile da interpretare. I Parse metodi e TryParse tentano di analizzare una stringa con diversi modelli di analisi impliciti, che potrebbero non riuscire. Il TryParseExact metodo, al contrario, richiede all'applicazione di designare in modo esplicito uno o più modelli di analisi esatti che potrebbero avere esito positivo.

Definizione e creazione di impostazioni cultura personalizzate

Si usa la CultureAndRegionInfoBuilder classe per definire e assegnare un nome alle impostazioni cultura personalizzate. Le impostazioni cultura personalizzate possono essere impostazioni cultura completamente nuove, nuove impostazioni cultura basate su impostazioni cultura esistenti (ovvero impostazioni cultura supplementari) o impostazioni cultura che sostituiscono le impostazioni cultura di .NET Framework esistenti. In ogni caso, i passaggi di base sono gli stessi:

  1. Creare un'istanza di un CultureAndRegionInfoBuilder oggetto chiamando il relativo CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) costruttore. Per sostituire una cultura esistente, passa il nome della cultura e il valore di enumerazione CultureAndRegionModifiers.Replacement al costruttore. Per creare una nuova cultura o una cultura aggiuntiva, passare un nome cultura univoco e il valore di enumerazione CultureAndRegionModifiers.Neutral o CultureAndRegionModifiers.None.

    Note

    Se si utilizza il CultureAndRegionModifiers.Replacement valore di enumerazione per creare un'istanza di un CultureAndRegionInfoBuilder oggetto, le CultureAndRegionInfoBuilder proprietà dell'oggetto vengono popolate automaticamente con i valori dell'oggetto CultureInfo da sostituire.

  2. Se stai creando una cultura nuova o supplementare:

  3. Modificare le proprietà dell'oggetto CultureAndRegionInfoBuilder in base alle esigenze.

  4. Se si prevede di registrare le impostazioni cultura personalizzate in una routine separata, chiamare il metodo Save. Viene generato un file XML che è possibile caricare e registrare in una routine di installazione delle impostazioni cultura personalizzate separata.

Registrazione di impostazioni cultura personalizzate

Se si sviluppa un'applicazione di registrazione per una cultura personalizzata separata dall'applicazione che crea la cultura, si chiama il metodo CreateFromLdml per caricare il file XML contenente la definizione della cultura personalizzata e si crea un'istanza dell'oggetto CultureAndRegionInfoBuilder. Per gestire la registrazione, chiamare il Register metodo . Affinché la registrazione abbia esito positivo, l'applicazione che registra la cultura personalizzata deve essere in esecuzione con privilegi amministrativi sul sistema di destinazione; in caso contrario, la chiamata a Register genera un'eccezione UnauthorizedAccessException.

Avvertimento

I dati culturali possono variare tra i sistemi. Se si usa la CultureAndRegionInfoBuilder classe per creare impostazioni cultura personalizzate uniformi in più sistemi e si creano impostazioni cultura personalizzate caricando i dati da oggetti e CultureInfo esistenti RegionInfo e personalizzandoli, è necessario sviluppare due utilità diverse. Il primo crea le impostazioni cultura personalizzate e lo salva in un file XML. Il secondo usa il metodo CreateFromLdml per caricare le impostazioni cultura personalizzate da un file XML e registrarle nel computer di destinazione.

Il processo di registrazione esegue le attività seguenti:

  • Crea un file con estensione nlp che contiene le informazioni definite nell'oggetto CultureAndRegionInfoBuilder .

  • Archivia il file con estensione nlp nella directory di sistema %windir%\Globalization nel computer di destinazione. In questo modo le impostazioni delle impostazioni cultura personalizzate possono essere mantenute tra le sessioni. Il CultureAndRegionInfoBuilder metodo richiede privilegi amministrativi perché il file con estensione nlp viene archiviato in una directory di sistema.

  • Prepara .NET Framework per eseguire la ricerca nella directory di sistema %windir%\Globalization invece di una cache interna alla successiva richiesta di creazione delle nuove impostazioni cultura personalizzate.

Quando le impostazioni cultura personalizzate vengono registrate correttamente, è indistinguibile dalle impostazioni cultura predefinite dal framework di .NET. Le impostazioni cultura personalizzate sono disponibili fino a quando una chiamata al CultureAndRegionInfoBuilder metodo rimuove il file con estensione nlp dal computer locale.

Creazione di un'istanza di impostazioni cultura personalizzate

È possibile creare un'istanza della cultura personalizzata in uno dei seguenti modi:

Inoltre, la matrice di CultureInfo oggetti restituiti dal metodo CultureInfo.GetCultures include la cultura personalizzata.

Example

Nell'esempio seguente vengono definite impostazioni cultura personalizzate di ru-US che rappresenta la lingua russa nel Stati Uniti. L'esempio definisce le impostazioni cultura personalizzate caricando le impostazioni dall'oggetto Russo (Russia) CultureInfo e dall'oggetto Stati Uniti RegionInfo e quindi imposta una serie di CultureAndRegionInfoBuilder proprietà. Nell'esempio vengono registrate le impostazioni cultura personalizzate, quindi ne viene creata un'istanza e viene creata un'istanza delle impostazioni cultura correnti.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      // Create a custom culture for ru-US.
      CultureAndRegionInfoBuilder car1 = new CultureAndRegionInfoBuilder("ru-US",
                                             CultureAndRegionModifiers.None);
      car1.LoadDataFromCultureInfo(CultureInfo.CreateSpecificCulture("ru-RU"));
      car1.LoadDataFromRegionInfo(new RegionInfo("en-US"));

      car1.CultureEnglishName = "Russian (United States)";
      car1.CultureNativeName = "русский (США)";
      car1.CurrencyNativeName = "Доллар (США)";
      car1.RegionNativeName = "США";

      // Register the culture.
      try {
         car1.Register();
      }
      catch (InvalidOperationException) {
         // Swallow the exception: the culture already is registered.
      }

      // Use the custom culture.
      CultureInfo ci = CultureInfo.CreateSpecificCulture("ru-US");
      Thread.CurrentThread.CurrentCulture = ci;
      Console.WriteLine("Current Culture: {0}",
                        Thread.CurrentThread.CurrentCulture.Name);
      Console.WriteLine("Writing System: {0}",
                        Thread.CurrentThread.CurrentCulture.TextInfo);
   }
}
// The example displays the following output:
//     Current Culture: ru-US
//     Writing System: TextInfo - ru-US
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      ' Create a custom culture for ru-US.
      Dim car1 As New CultureAndRegionInfoBuilder("ru-US", CultureAndRegionModifiers.None)
      car1.LoadDataFromCultureInfo(CultureInfo.CreateSpecificCulture("ru-RU"))
      car1.LoadDataFromRegionInfo(New RegionInfo("en-US"))
      
      car1.CultureEnglishName = "Russian (United States)"
      car1.CultureNativeName = "русский (США)"
      car1.CurrencyNativeName = "Доллар (США)"
      car1.RegionNativeName = "США"

      ' Register the culture.
      Try
         car1.Register()
      Catch e As InvalidOperationException
         ' Swallow the exception: the culture already is registered.
      End Try
      
      ' Use the custom culture.
      Dim ci As CultureInfo = CultureInfo.CreateSpecificCulture("ru-US")
      Thread.CurrentThread.CurrentCulture = ci
      Console.WriteLine("Current Culture: {0}", 
                        Thread.CurrentThread.CurrentCulture.Name)
      Console.WriteLine("Writing System: {0}", 
                        Thread.CurrentThread.CurrentCulture.TextInfo)
   End Sub
End Module
' The example displays the following output:
'     Current Culture: ru-US
'     Writing System: TextInfo - ru-US

Costruttori

Nome Descrizione
CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers)

Inizializza una nuova istanza della classe CultureAndRegionInfoBuilder.

Proprietà

Nome Descrizione
AvailableCalendars

Ottiene o imposta una matrice di calendari supportati da questo CultureAndRegionInfoBuilder oggetto.

CompareInfo

Ottiene o imposta l'oggetto CompareInfo che definisce come confrontare le stringhe per le impostazioni cultura.

ConsoleFallbackUICulture

Ottiene o imposta impostazioni cultura alternative dell'interfaccia utente adatte alle applicazioni console quando le impostazioni cultura predefinite dell'interfaccia utente grafica non sono appropriate.

CultureEnglishName

Ottiene o imposta il nome delle impostazioni cultura in inglese.

CultureName

Ottiene il nome delle impostazioni cultura create.

CultureNativeName

Ottiene o imposta il nome delle impostazioni cultura nel formato e nella lingua che le impostazioni cultura sono impostate per la visualizzazione.

CultureTypes

Ottiene il CultureTypes valore che descrive le impostazioni cultura rappresentate dall'oggetto corrente CultureAndRegionInfoBuilder .

CurrencyEnglishName

Ottiene o imposta il nome, in inglese, della valuta utilizzata nel paese o nell'area geografica rappresentata dall'oggetto corrente CultureAndRegionInfoBuilder .

CurrencyNativeName

Ottiene o imposta il nome nativo della valuta utilizzata nel paese/area geografica rappresentato dall'oggetto corrente CultureAndRegionInfoBuilder .

GeoId

Ottiene o imposta un numero di identificazione univoco per un'area geografica, un paese, una città o una località.

GregorianDateTimeFormat

Ottiene o imposta un DateTimeFormatInfo oggetto che definisce il formato di date e ore in base al calendario gregoriano.

IetfLanguageTag

Ottiene o imposta un nome delle impostazioni cultura formattato in base allo standard RFC 4646, "Tag per l'identificazione delle lingue".

IsMetric

Ottiene o imposta un valore che indica se il paese/area geografica utilizza il sistema di metriche per le misurazioni.

ISOCurrencySymbol

Ottiene o imposta il simbolo di valuta ISO 4217 a tre caratteri associato al paese/area geografica.

IsRightToLeft

Ottiene o imposta la direzione predominante delle righe di testo nel sistema di scrittura associato all'oggetto corrente CultureAndRegionInfoBuilder .

KeyboardLayoutId

Ottiene o imposta l'identificatore delle impostazioni locali di input attivo.

LCID

Ottiene l'identificatore delle impostazioni cultura per l'oggetto corrente CultureAndRegionInfoBuilder .

NumberFormat

Ottiene o imposta un NumberFormatInfo oggetto che definisce il formato culturalmente appropriato per la visualizzazione di numeri, valuta e percentuale.

Parent

Ottiene o imposta l'oggetto CultureInfo che rappresenta le impostazioni cultura padre delle impostazioni cultura personalizzate correnti.

RegionEnglishName

Ottiene o imposta il nome completo del paese o dell'area geografica in inglese.

RegionName

Ottiene il nome del paese/area geografica per l'oggetto corrente CultureAndRegionInfoBuilder .

RegionNativeName

Ottiene o imposta il nome completo del paese o dell'area geografica, come noto dalle persone di queste impostazioni cultura personalizzate.

TextInfo

Ottiene o imposta l'oggetto TextInfo che definisce il sistema di scrittura associato a queste impostazioni cultura personalizzate.

ThreeLetterISOLanguageName

Ottiene o imposta il codice ISO 639-2 di tre lettere per la lingua di queste impostazioni cultura personalizzate.

ThreeLetterISORegionName

Ottiene o imposta il codice di tre lettere definito in ISO 3166 per il paese/area geografica.

ThreeLetterWindowsLanguageName

Ottiene o imposta il codice a tre lettere per la lingua, come definito nell'API di Windows.

ThreeLetterWindowsRegionName

Ottiene o imposta il codice di tre lettere assegnato da Windows al paese/area geografica rappresentato dalle impostazioni cultura personalizzate correnti.

TwoLetterISOLanguageName

Ottiene o imposta il codice ISO 639-1 a due lettere per la lingua dell'oggetto corrente CultureInfo .

TwoLetterISORegionName

Ottiene o imposta il codice a due lettere definito in ISO 3166 per il paese/area geografica.

Metodi

Nome Descrizione
CreateFromLdml(String)

Ricostituisce un CultureAndRegionInfoBuilder oggetto da un file XML specificato che contiene una rappresentazione dell'oggetto.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
LoadDataFromCultureInfo(CultureInfo)

Imposta le proprietà dell'oggetto corrente CultureAndRegionInfoBuilder con le proprietà corrispondenti dell'oggetto specificato CultureInfo .

LoadDataFromRegionInfo(RegionInfo)

Imposta le proprietà dell'oggetto corrente CultureAndRegionInfoBuilder con le proprietà corrispondenti dell'oggetto specificato RegionInfo .

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
Register()

Mantiene l'oggetto corrente CultureAndRegionInfoBuilder come impostazioni cultura personalizzate nel computer locale e rende le impostazioni cultura disponibili per le applicazioni. Richiede privilegi amministrativi.

Save(String)

Scrive una rappresentazione XML dell'oggetto corrente CultureAndRegionInfoBuilder nel file specificato.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
Unregister(String)

Elimina impostazioni cultura personalizzate dal computer locale.

Si applica a