Elemento <CompatSortNLSVersion>

Especifica que el runtime debe usar criterios de ordenación heredados al realizar comparaciones de cadenas.

<configuration>
  <runtime>
    <CompatSortNLSVersion>

Sintaxis

<CompatSortNLSVersion
   enabled="4096"/>  

Atributos y elementos

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.

Atributos

Atributo Descripción
enabled Atributo necesario.

Especifica el identificador de configuración regional cuyo criterio de ordenación se va a usar.

Atributo enabled

Valor Descripción
4096 El identificador de configuración regional que representa un criterio de ordenación alternativo. En este caso, 4096 representa el criterio de ordenación de .NET Framework 3.5 y versiones anteriores.

Elementos secundarios

Ninguno.

Elementos primarios

Elemento Descripción
configuration Elemento raíz de cada archivo de configuración usado por las aplicaciones de Common Language Runtime y .NET Framework.
runtime Contiene información sobre las opciones de inicialización del motor en tiempo de ejecución.

Comentarios

Dado que las operaciones de comparación y ordenación de cadenas, así como de aplicación de mayúsculas y minúsculas, realizadas por la clase System.Globalization.CompareInfo en .NET Framework 4 cumplen el estándar Unicode 5.1, los resultados de los métodos de comparación de cadenas como String.Compare(String, String) y String.LastIndexOf(String) pueden diferir de las versiones anteriores de .NET Framework. Si la aplicación depende de un comportamiento heredado, puede restaurar las reglas de comparación y ordenación de cadenas usadas en .NET Framework 3.5 y versiones anteriores incluyendo el elemento <CompatSortNLSVersion> en el archivo de configuración de la aplicación.

Importante

La restauración de reglas de comparación y ordenación de cadenas heredadas también requiere que la biblioteca de vínculos dinámicos sort00001000.dll esté disponible en el sistema local.

También puede usar reglas de ordenación y comparación de cadenas heredadas en un dominio de aplicación concreto. Para ello, pase la cadena "NetFx40_Legacy20SortingBehavior" al método SetCompatibilitySwitches al crear el dominio de aplicación.

Ejemplo

En el ejemplo siguiente, se crean instancias de dos objetos String y se llama al método String.Compare(String, String, StringComparison) para compararlas usando las convenciones de la referencia cultural actual.

using System;

enum StringComparisonResult
{
    precedes = -1,
    equals = 0,
    follows = 1,
};

public class Example
{
   public static void Main()
   {
      string str1 = new string( new char[] {'\u0219', '\u021B', 'a' });
      string str2 = "a";

      Console.WriteLine("{0} {1} {2} in the sort order.",
                        str1,
                        (StringComparisonResult) String.Compare(str1, str2, StringComparison.CurrentCulture),
                        str2);
   }
}
Enum StringComparisonResult As Integer
    precedes = -1
    equals = 0
    follows = 1
End Enum

Module Example
    Public Sub Main()
        Dim str1 As String = ChrW(&h219) + ChrW(&h21B) + "a"
        Dim str2 As String = "a"

        Console.WriteLine("{0} {1} {2} in the sort order.", _
                          str1, _
                          CType(String.Compare(str1, str2, StringComparison.CurrentCulture), StringComparisonResult), _
                          str2)
    End Sub
End Module

Al ejecutar el ejemplo en .NET Framework 4, muestra el siguiente resultado:

sta follows a in the sort order.  

Este es completamente diferente del resultado que se muestra al ejecutar el ejemplo en .NET Framework 3.5:

sta equals a in the sort order.  

Sin embargo, si agrega el siguiente archivo de configuración al directorio del ejemplo y, a continuación, ejecuta el ejemplo en .NET Framework 4, el resultado es idéntico al que produce el ejemplo cuando se ejecuta en .NET Framework 3.5.

<?xml version ="1.0"?>  
<configuration>  
   <runtime>  
      <CompatSortNLSVersion enabled="4096"/>  
   </runtime>  
</configuration>  

Consulte también