Classe CultureAndRegionInfoBuilder

Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.

Nota

La CultureAndRegionInfoBuilder classe è utile solo per i sistemi operativi Windows. I file con estensione nlp generati non sono supportati nei sistemi operativi non Windows. Inoltre, anche in Windows, i file con estensione nlp generati sono supportati solo in .NET Framework (o in .NET Core quando si usa la modalità di globalizzazione NLS).

La CultureInfo classe contiene informazioni specifiche delle impostazioni cultura, ad esempio la lingua associata, la sottolanguage, il paese/area geografica, il calendario e le convenzioni culturali. Questa classe fornisce anche istanze specifiche delle impostazioni cultura delle DateTimeFormatInfoclassi , CompareInfoNumberFormatInfo, e TextInfo , necessarie per operazioni specifiche delle impostazioni cultura, ad esempio maiuscole e minuscole, formattazione e analisi di date e numeri e il confronto di stringhe.

Per impostazione predefinita, .NET supporta CultureInfo oggetti che rappresentano un set predefinito di impostazioni cultura. Per un elenco di queste impostazioni cultura disponibili nei sistemi Windows, vedi la colonna Tag lingua nell'elenco dei nomi di lingua/area geografica supportati da Windows. I nomi delle impostazioni cultura seguono lo standard definito da BCP 47. La CultureAndRegionInfoBuilder classe consente di creare impostazioni cultura personalizzate completamente nuove o che eseguono l'override di impostazioni cultura predefinite. 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

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 impostazioni cultura 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 le impostazioni cultura personalizzate in un computer, è possibile usare la CultureInfo classe nell'app per creare istanze delle impostazioni cultura personalizzate esattamente come per le impostazioni cultura predefinite.

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 impostazioni cultura personalizzate può essere complessa e quindi difficile da analizzare. 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.

Definire e creare 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 impostazioni cultura .NET 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 le impostazioni cultura esistenti, passare il nome delle impostazioni cultura e il CultureAndRegionModifiers.Replacement valore di enumerazione al costruttore. Per creare nuove impostazioni cultura o impostazioni cultura supplementari, passare un nome di impostazioni cultura univoco e il CultureAndRegionModifiers.Neutral valore di enumerazione o CultureAndRegionModifiers.None .

    Nota

    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 si creano impostazioni cultura nuove o supplementari:

  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 Save metodo . Viene generato un file XML che è possibile caricare e registrare in una routine di installazione delle impostazioni cultura personalizzate separata.

Registrare impostazioni cultura personalizzate

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

Avviso

I dati delle impostazioni cultura 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 RegionInfo esistenti CultureInfo 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 CreateFromLdml metodo per caricare le impostazioni cultura personalizzate da un file XML e registrarlo 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 per cercare la directory di sistema %windir%\Globalization anziché una cache interna alla successiva richiesta di creare le nuove impostazioni cultura personalizzate.

Quando le impostazioni cultura personalizzate vengono registrate correttamente, è indistinguibile dalle impostazioni cultura predefinite 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.

Creare un'istanza di impostazioni cultura personalizzate

È possibile creare un'istanza delle impostazioni cultura personalizzate in uno dei modi seguenti:

Inoltre, la matrice di CultureInfo oggetti restituiti dal CultureInfo.GetCultures metodo include le impostazioni cultura personalizzate.