Элемент <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. |
Исправление ошибки содержимого. |