CultureAndRegionInfoBuilder Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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:
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.
Se stai creando una cultura nuova o supplementare:
Popolare le proprietà dell'oggetto CultureAndRegionInfoBuilder chiamando il metodo LoadDataFromCultureInfo e passando un oggetto CultureInfo le cui proprietà sono simili a quelle del tuo nuovo oggetto.
Popolare le CultureAndRegionInfoBuilder proprietà regionali dell'oggetto chiamando il LoadDataFromRegionInfo metodo e passando un RegionInfo oggetto che rappresenta l'area della propria cultura personalizzata.
Modificare le proprietà dell'oggetto CultureAndRegionInfoBuilder in base alle esigenze.
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:
- Richiamando il costruttore CultureInfo.CultureInfo con il nome della cultura.
- Chiamando il metodo CultureInfo.CreateSpecificCulture con il nome della cultura.
- Chiamando il metodo CultureInfo.GetCultureInfo con il nome della cultura.
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. |