<CompatSortNLSVersion> , element
Określa, że środowisko uruchomieniowe ma używać starszych kolejności sortowania podczas porównywania ciągów.
<Konfiguracji>
<Środowiska wykonawczego>
<CompatSortNLSVersion>
Składnia
<CompatSortNLSVersion
enabled="4096"/>
Atrybuty i elementy
W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.
Atrybuty
Atrybut | Opis |
---|---|
enabled |
Atrybut wymagany. Określa identyfikator ustawień regionalnych, które będą określać używaną kolejność sortowania. |
Atrybut włączony
Wartość | Opis |
---|---|
4096 | Identyfikator ustawień regionalnych reprezentujący alternatywną kolejność sortowania. W tym przypadku wartość 4096 reprezentuje kolejność sortowania .NET Framework 3.5 i starszych wersji. |
Elementy podrzędne
Brak.
Elementy nadrzędne
Element | Opis |
---|---|
configuration |
Element główny w każdym pliku konfiguracji używanym przez środowisko uruchomieniowe języka wspólnego i aplikacje programu .NET Framework. |
runtime |
Zawiera informacje dotyczące opcji inicjowania środowiska uruchomieniowego. |
Uwagi
Ponieważ porównanie ciągów, sortowanie i operacje wielkości liter wykonywane przez klasę System.Globalization.CompareInfo w .NET Framework 4 są zgodne ze standardem Unicode 5.1, wyniki metod porównania ciągów, takich jak String.Compare(String, String) i String.LastIndexOf(String) mogą różnić się od poprzednich wersji .NET Framework. Jeśli aplikacja zależy od starszego zachowania, możesz przywrócić reguły porównywania ciągów i sortowania używane w .NET Framework 3.5 i starszych wersjach, dołączając <CompatSortNLSVersion>
element do pliku konfiguracji aplikacji.
Ważne
Przywrócenie starszych reguł porównywania ciągów i sortowania powoduje też, że w systemie lokalnym musi być dostępna dołączana dynamicznie biblioteka sort00001000.dll.
Można również użyć starszych reguł sortowania ciągów i porównywania w określonej domenie aplikacji, przekazując ciąg "NetFx40_Legacy20SortingBehavior" do SetCompatibilitySwitches metody podczas tworzenia domeny aplikacji.
Przykład
Poniższy przykład tworzy wystąpienie dwóch String obiektów i wywołuje metodę String.Compare(String, String, StringComparison) , aby je porównać przy użyciu konwencji bieżącej kultury.
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
Po uruchomieniu przykładu na .NET Framework 4 zostaną wyświetlone następujące dane wyjściowe:
sta follows a in the sort order.
Jest to zupełnie inne niż dane wyjściowe wyświetlane podczas uruchamiania przykładu w .NET Framework 3.5:
sta equals a in the sort order.
Jeśli jednak dodasz następujący plik konfiguracji do katalogu przykładu, a następnie uruchom przykład na .NET Framework 4, dane wyjściowe są identyczne z danymi wygenerowaną przez przykład podczas uruchamiania w .NET Framework 3.5.
<?xml version ="1.0"?>
<configuration>
<runtime>
<CompatSortNLSVersion enabled="4096"/>
</runtime>
</configuration>