Sdílet prostřednictvím


<Element CompatSortNLSVersion>

Určuje, zda by modul runtime měl při porovnávání řetězců použít starší pořadí řazení.

<Konfigurace>
  <Runtime>
    <CompatSortNLSVersion>

Syntax

<CompatSortNLSVersion
   enabled="4096"/>  

Atributy a elementy

Následující části popisují atributy, podřízené prvky a nadřazené prvky.

Atributy

Atribut Popis
enabled Požadovaný atribut.

Určuje ID národního prostředí, jehož pořadí řazení se má použít.

Atribut enabled

Hodnota Popis
4 096 ID národního prostředí, které představuje alternativní pořadí řazení. V tomto případě 4096 představuje pořadí řazení rozhraní .NET Framework 3.5 a starších verzí.

Podřízené elementy

Žádné

Nadřazené elementy

Element Popis
configuration Kořenový prvek v každém konfiguračním souboru, který je používán modulem Common Language Runtime (CLR) a aplikacemi rozhraní .NET Framework.
runtime Obsahuje informace o možnostech inicializace modulu runtime.

Poznámky

Vzhledem k tomu, že porovnání řetězců, řazení a operace malých a malých a malých písmen provedené System.Globalization.CompareInfo třídou v rozhraní .NET Framework 4 odpovídají standardu Unicode 5.1, výsledky metod porovnání řetězců, jako String.Compare(String, String) a String.LastIndexOf(String) se mohou lišit od předchozích verzí rozhraní .NET Framework. Pokud vaše aplikace závisí na starším chování, můžete obnovit pravidla porovnání a řazení řetězců používaná v rozhraní .NET Framework 3.5 a starších verzích zahrnutím elementu <CompatSortNLSVersion> do konfiguračního souboru vaší aplikace.

Důležité

Obnovení starších pravidel porovnání a řazení řetězců vyžaduje, aby v místním systému byla k dispozici dynamická knihovna sort00001000.dll.

Můžete také použít starší pravidla řazení a porovnání řetězců v konkrétní doméně aplikace předáním řetězce "NetFx40_Legacy20SortingBehavior" metodě SetCompatibilitySwitches při vytváření domény aplikace.

Příklad

Následující příklad vytvoří instanci dvou String objektů a zavolá metodu String.Compare(String, String, StringComparison) k jejich porovnání pomocí konvencí aktuální jazykové verze.

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

Při spuštění příkladu v rozhraní .NET Framework 4 se zobrazí následující výstup:

sta follows a in the sort order.  

To se zcela liší od výstupu, který se zobrazí při spuštění příkladu v rozhraní .NET Framework 3.5:

sta equals a in the sort order.  

Pokud však přidáte následující konfigurační soubor do adresáře příkladu a pak spustíte příklad v rozhraní .NET Framework 4, výstup je stejný jako výstup vytvořený v příkladu při spuštění v rozhraní .NET Framework 3.5.

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

Viz také