Condividi tramite


Uso della proprietà CurrentCulture

Aggiornamento: novembre 2007

La proprietà CurrentCulture rappresenta informazioni sulle impostazioni cultura correnti in base ai singoli thread. Tali informazioni determinano i formati predefiniti di date, ore, valute e numeri, nonché il criterio di ordinamento del testo, i confronti di stringhe e la combinazione di maiuscole e minuscole. L'impostazione effettuata mediante questa proprietà non si riferisce alla lingua. La proprietà definisce unicamente i dati correlati alle impostazioni standard relative a un'area geografica. Mediante l'applicazione pertanto è possibile impostare l'oggetto CurrentCulture soltanto su impostazioni cultura specifiche oppure su InvariantCulture. È possibile utilizzare la proprietà CurrentThread per impostare l'oggetto CurrentCulture mediante l'applicazione.

Nota:

Per modificare le impostazioni cultura di CurrentThread, è necessario disporre di un oggetto SecurityPermission con il flag ControlThread impostato. La modifica dei thread rappresenta un'operazione rischiosa a causa dello stato di protezione associato ai thread. Questa autorizzazione deve pertanto essere associata solo a codice attendibile e solo in caso di necessità. Non è possibile modificare le impostazioni cultura di un thread in codice semi-trusted.

Impostazione esplicita della proprietà CurrentCulture

L'applicazione può impostare la proprietà CurrentCulture in modo esplicito. Nell'esempio di codice riportato di seguito la proprietà viene impostata sulle impostazioni cultura specifiche della lingua tedesca parlata in Germania, designata "de-DE".

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE")
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");

Per inizializzare la proprietà CurrentCulture l'applicazione deve utilizzare impostazioni cultura specifiche. La proprietà prevede impostazioni cultura associate sia a una lingua sia a un paese o una regione, come ad esempio per la lingua inglese parlata negli Stati Uniti e designata "en-US". Poiché spesso una lingua è parlata in più paesi, le informazioni sulle impostazioni internazionali sono necessarie per determinare le convenzioni di formattazione appropriate da utilizzare. Se, ad esempio, l'applicazione specifica le impostazioni cultura "en" per l'inglese non associato ad alcun paese, non esiste un'unica impostazione corretta per il formato della data o della valuta. La data potrebbe essere indicata nel formato valido per gli Stati Uniti o per il Regno Unito. La valuta potrebbe essere indicata nel formato valido per la Nuova Zelanda o per il Canada. Se si tenta di impostare la proprietà CurrentCulture specificando impostazioni cultura non associate ad alcun paese, viene generata un'eccezione.

Se si ha accesso unicamente a impostazioni cultura non associate ad alcun paese, l'applicazione può creare un oggetto CultureInfo nel formato previsto da CurrentCulture utilizzando il metodo CreateSpecificCulture. Questo metodo esegue il mapping di impostazioni cultura non associate ad alcun paese alle relative impostazioni cultura specifiche predefinite, quindi crea un oggetto CultureInfo che rappresenta tali impostazioni cultura specifiche. Nell'esempio di codice riportato di seguito viene utilizzato il metodo CreateSpecificCulture per eseguire il mapping delle impostazioni cultura per la lingua tedesca non associata ad alcun paese ("de") alle impostazioni cultura specifiche della lingua tedesca parlata in Germania, designata "de-DE". Viene quindi creato un oggetto CultureInfo per "de-DE", utilizzato per inizializzare il valore della proprietà CurrentCulture.

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de");
Nota:

Questo metodo è facoltativo. Se il mapping fornito non è appropriato per l'applicazione, è possibile utilizzare in alternativa il mapping proprio dell'applicazione.

Impostazione esplicita della proprietà CurrentCulture in una pagina aspx

Il metodo CreateSpecificCulture consente inoltre all'applicazione di utilizzare la lingua corrente del browser Web per inizializzare la proprietà CurrentCulture di una pagina aspx. Nell'esempio di codice riportato di seguito la proprietà UserLanguages recupera la lingua corrente del browser Web come stringa. Il metodo CreateSpecificCulture analizza la stringa e restituisce un oggetto CultureInfo in un formato utilizzabile per inizializzare il valore della proprietà CurrentCulture.

' Sets the CurrentCulture property to the culture associated with the Web
' browser's current language setting.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0])
// Sets the CurrentCulture property to the culture associated with the Web
// browser's current language setting.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);

Per ulteriori informazioni sull'utilizzo e sul recupero di risorse nelle applicazioni ASP.NET, vedere Risorse nelle applicazioni ASP.NET.

Impostazione implicita della proprietà CurrentCulture

Nel sistema operativo Windows, la proprietà CurrentCulture viene impostata dalla funzione GetUserDefaultLCID. L'impostazione di questa proprietà può essere modificata agendo sulle impostazioni cultura dell'utente mediante le opzioni internazionali e della lingua nel Pannello di controllo oppure modificando le impostazioni correlate alle impostazioni locali dell'utente, quali i formati per la valuta, i numeri, la data e l'ora.

Se nell'applicazione si desidera garantire l'utilizzo dei formati predefiniti forniti da .NET Framework per la valuta, i numeri, la data e l'ora per impostazioni cultura specifiche, eseguire l'override delle impostazioni locali predefinite dell'utente. L'applicazione deve creare un oggetto CultureInfo utilizzando un overload del costruttore che accetta il parametro useUserOverride e impostare tale parametro su false. Questa tecnica consente l'override delle impostazioni predefinite nel sistema operativo dell'utente con le impostazioni predefinite di .NET Framework. Nella formattazione della valuta per i paesi dell'Unione Europea (UE) che utilizzano l'euro, il parametro useUserOverride deve essere impostato su false perché venga utilizzato il simbolo della valuta corretto. Per ulteriori informazioni, vedere la sezione "Formattazione della valuta per i paesi dell'euro" nell'argomento Formattazione di dati numerici per specifiche impostazioni cultura.

Vedere anche

Concetti

Formattazione di dati numerici per specifiche impostazioni cultura

Risorse nelle applicazioni ASP.NET

Uso della classe CultureInfo

Uso della proprietà CurrentUICulture

Uso della proprietà InvariantCulture