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>