Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Propiedad CultureInfo.InvariantCulture

 

Publicado: octubre de 2016

Obtiene el objeto CultureInfo que es independiente de la referencia cultural (invariable).

Espacio de nombres:   System.Globalization
Ensamblado:  mscorlib (en mscorlib.dll)

public static CultureInfo InvariantCulture { get; }

Valor de propiedad

Type: System.Globalization.CultureInfo

Objeto que es independiente de la referencia cultural (invariable).

La referencia cultural invariable es cultura-indistinta; se asocia el idioma inglés pero no en el país o región. Especificar la referencia cultural de todos los idiomas por nombre mediante una cadena vacía ("") en la llamada a un CultureInfo método de creación de instancias. CultureInfo.InvariantCulture También se recupera una instancia de la referencia cultural invariable. Se puede utilizar en casi cualquier método del System.Globalization espacio de nombres que requiera una referencia cultural. Los objetos devueltos por propiedades como CompareInfo, DateTimeFormat, y NumberFormat también reflejan la comparación de cadenas y el formato convenciones de la referencia cultural invariable.

A diferencia de los datos de la referencia cultural, que está sujeta a cambios de personalización de usuario o las actualizaciones de .NET Framework o el sistema operativo, datos de referencia cultural invariable es estables con el tiempo y entre referencias culturales instaladas y no se pueden personalizar los usuarios. Esto hace particularmente útil para las operaciones que requieran resultados independientes de la referencia cultural, la referencia cultural invariable como dar formato y analizar las operaciones que se conservan el formato datos, u ordenando y las operaciones que requieren que los datos se muestran en un orden fijo, independientemente de la referencia cultural de ordenación.

Puede utilizar la referencia cultural para las operaciones de cadena de la referencia cultural que no se ven afectados por las convenciones de la referencia cultural del subproceso actual y que son coherentes entre distintas referencias culturales. Por ejemplo, puede datos ordenados aparezcan en un orden fijo o aplicar un conjunto estándar de las convenciones de mayúsculas y minúsculas en cadenas independientemente de la referencia cultural del subproceso actual. Para ello, se pasa el InvariantCulture objeto a un método que tiene un CultureInfo parámetro, como Compare(String, String, Boolean, CultureInfo) y ToUpper(CultureInfo).

El InvariantCulture propiedad puede utilizarse para conservar los datos en un formato independiente de la referencia cultural. Esto proporciona un formato conocido que no cambia y que se puede utilizar para serializar y deserializar datos en distintas referencias culturales. Una vez que se deserializan los datos, puede dar formato adecuado según las convenciones culturales del usuario actual.

Por ejemplo, si decide conservar los datos de fecha y hora en formato de cadena, puede pasar la InvariantCulture objeto el DateTime.ToString(String, IFormatProvider) o DateTimeOffset.ToString(IFormatProvider) método para crear la cadena y se puede pasar el InvariantCulture de objeto para el DateTime.Parse(String, IFormatProvider) o DateTimeOffset.Parse(String, IFormatProvider, DateTimeStyles) método para convertir la cadena a un valor de fecha y hora. Esta técnica garantiza la fecha subyacente y los valores de tiempo no cambian cuando los datos se leen o escritos los usuarios de diferentes referencias culturales.

En el ejemplo siguiente se usa la referencia cultural para conservar un DateTime valor como una cadena. A continuación, se analiza la cadena y se muestra su valor usando las convenciones de formato de las referencias culturales de alemán (Alemania) y francés (Francia).

using System;
using System.IO;
using System.Globalization;

public class Example 
{
   public static void Main() 
   {
      // Persist the date and time data.
      StreamWriter sw = new StreamWriter(@".\DateData.dat");

      // Create a DateTime value.      
      DateTime dtIn = DateTime.Now;
      // Retrieve a CultureInfo object.
      CultureInfo invC = CultureInfo.InvariantCulture;

      // Convert the date to a string and write it to a file.
      sw.WriteLine(dtIn.ToString("r", invC));
      sw.Close();

      // Restore the date and time data.
      StreamReader sr = new StreamReader(@".\DateData.dat");
      String input;
      while ((input = sr.ReadLine()) != null) 
      {
         Console.WriteLine("Stored data: {0}\n" , input);    

         // Parse the stored string.
         DateTime dtOut = DateTime.Parse(input, invC, DateTimeStyles.RoundtripKind);

         // Create a French (France) CultureInfo object.
         CultureInfo frFr = new CultureInfo("fr-FR");
         // Displays the date formatted for the "fr-FR" culture.
         Console.WriteLine("Date formatted for the {0} culture: {1}" , 
                           frFr.Name, dtOut.ToString("f", frFr));

         // Creates a German (Germany) CultureInfo object.
         CultureInfo deDe= new CultureInfo("de-De");
         // Displays the date formatted for the "de-DE" culture.
         Console.WriteLine("Date formatted for {0} culture: {1}" , 
                           deDe.Name, dtOut.ToString("f", deDe));
      }
      sr.Close();
   }
}
// The example displays the following output:
//    Stored data: Tue, 15 May 2012 16:34:16 GMT
//    
//    Date formatted for the fr-FR culture: mardi 15 mai 2012 16:34
//    Date formatted for de-DE culture: Dienstag, 15. Mai 2012 16:34

Si va a realizar una decisión de seguridad (por ejemplo, si se debe permitir el acceso a un recurso del sistema) en función del resultado de una comparación de cadenas o un cambio de mayúsculas, no debe utilizar la referencia cultural invariable. En su lugar, debe realizar una comparación ordinal de minúsculas o mediante una llamada a un método que incluya un StringComparison parámetro y suministro StringComparison.Ordinal o StringComparison.OrdinalIgnoreCase como argumento. Código que realiza operaciones de cadena de la referencia cultural puede provocar vulnerabilidades de seguridad si se cambia la referencia cultural actual o si la referencia cultural en el equipo que ejecuta el código difiere de la referencia cultural que se usa para probar el código. Por el contrario, una comparación de ordinales sólo depende del valor binario de los caracteres comparados.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: