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

<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

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

Aucun

É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 du 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 votre application.

Remarque importanteImportant

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.

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);       
   }
}

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

Référence

Schéma des paramètres d'exécution

Autres ressources

Schéma des fichiers de configuration pour le .NET Framework

Historique des modifications

Date

Historique

Motif

Mai 2010

Notez que le commutateur <CompatSortNLSVersion> dépend de sort00001000.dll.

Résolution des bogues de contenu.