Partage via


<Élément CompatSortNLSVersion>

Spécifie que le runtime doit utiliser des ordres de tri hérités lors de l'exécution de comparaisons de chaînes.

<configuration>
  <runtime>
    <CompatSortNLSVersion>

Syntaxe

<CompatSortNLSVersion
   enabled="4096"/>  

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Attribut Description
enabled Attribut requis.

Spécifie l'ID de paramètres régionaux dont l'ordre de tri doit être utilisé.

Attribut enabled

Valeur Description
4096 ID de paramètres régionaux qui représente un ordre de tri secondaire. Dans ce cas, 4096 représente l’ordre de tri de .NET Framework 3.5 et versions antérieures.

Éléments enfants

Aucune.

Éléments parents

Élément Description
configuration Élément racine de chaque fichier de configuration utilisé par le Common Language Runtime et les applications .NET Framework.
runtime Contient des informations sur les options d'initialisation du runtime.

Notes

Dans la mesure où la comparaison de chaînes, le tri et les opérations de choix de la casse effectuées par la classe System.Globalization.CompareInfo dans .NET Framework 4 sont conformes à la norme Unicode 5.1, les résultats des méthodes de comparaison de chaînes telles que String.Compare(String, String) et String.LastIndexOf(String) peuvent différer des versions précédentes du .NET Framework. Si votre application dépend d’un comportement hérité, vous pouvez restaurer la comparaison de chaînes et les règles de tri utilisées dans .NET Framework 3.5 et versions antérieures en incluant l’élément <CompatSortNLSVersion> dans le fichier de configuration de l’application.

Important

La restauration de la comparaison de chaînes héritées et des règles de tri requiert également que la bibliothèque de liens dynamiques sort00001000.dll soit disponible sur le système local.

Vous pouvez également utiliser des règles de tri et de comparaison de chaîne héritées dans un domaine d'application spécifique en passant la chaîne « NetFx40_Legacy20SortingBehavior » à la méthode SetCompatibilitySwitches lorsque vous créez le domaine d'application.

Exemple

L'exemple suivant instancie deux objets String et appelle la méthode String.Compare(String, String, StringComparison) pour les comparer en utilisant les conventions de la culture actuelle.

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

Lorsque vous exécutez l’exemple sur .NET Framework 4, la sortie suivante s’affiche :

sta follows a in the sort order.  

Cela est complètement différent de la sortie qui s’affiche lorsque vous exécutez l’exemple sur .NET Framework 3.5 :

sta equals a in the sort order.  

Toutefois, si vous ajoutez le fichier de configuration suivant au répertoire de l’exemple, puis exécutez l’exemple sur .NET Framework 4, la sortie est identique à celle produite par l’exemple lorsqu’il est exécuté sur .NET Framework 3.5.

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

Voir aussi