Udostępnij za pośrednictwem


<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>  

Zobacz też