Элемент <CompatSortNLSVersion>

Указывает, что среда выполнения должна использовать устаревший порядок сортировки при выполнении сравнений строк.

<CompatSortNLSVersion  
   enabled="4096"/

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Атрибут

Описание

enabled

Обязательный атрибут.

Указывает код языка, чей порядок сортировки должен быть использован.

Атрибут enabled

Значение

Описание

4096

Код языка, который представляет альтернативный порядок сортировки. В этом случае 4096 представляет порядок сортировки .NET Framework 3.5 и более ранних версий.

Дочерние элементы

Отсутствует.

Родительские элементы

Элемент

Описание

configuration

Корневой элемент в любом файле конфигурации, используемом средой CLR и приложениями платформы .NET Framework.

runtime

Содержит сведения о параметрах инициализации среды выполнения.

Заметки

Потому, что сравнение строк, сортировка и операции, связанные с выбором регистра символов, выполняемые классомSystem.Globalization.CompareInfo .NET Framework 4 соответствуют стандарту Unicode 5.1, результаты, методы сравнения строк, таких как String.Compare(String, String) и String.LastIndexOf(String), могут отличаться от предыдущих версий.NET Framework. Если приложение зависит от устаревших поведение, вы можете восстановить сравнения строк и сортировки правила, используемые в .NET Framework 3.5 и более ранних версиях, включая <CompatSortNLSVersion> элемент в файле конфигурации приложения.

Важное примечаниеВажно

Восстановление старых версий сравнение и правила сортировки также требует, чтобы библиотека динамической компоновки sort00001000.dll была доступна в локальной системе.

Можно также использовать правила старых версий для сортировки и сравнения строк в домене приложения, передав строку netfx40_legacy20sortingbehavior в метод SetCompatibilitySwitches при создании домена приложения.

Пример

В следующем примере создаются экземпляры двух объектовStringи вызывается метод String.Compare(String, String, StringComparison), чтобы сравнить их с помощью конвенций текущих языка и региональных параметров.

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
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);       
   }
}

При запуске примера на .NET Framework 4 отображаются следующие выходные данные.

sta follows a in the sort order.

Это полностью отличается от вывода, которая отображается при запуске примера на .NET Framework 3.5.

sta equals a in the sort order.

Однако если добавить следующий файл конфигурации в каталога примера и выполнить пример на .NET Framework 4, выходные данные идентичны, созданным в примере при выполнении на .NET Framework 3.5.

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

См. также

Ссылки

Схема параметров среды выполнения

Другие ресурсы

Схема файлов конфигурации для .NET Framework

Журнал изменений

Дата

Журнал

Причина

Май 2010

Отметил, что переключатель <CompatSortNLSVersion> зависит от sort00001000.dll.

Исправление ошибки содержимого.