Partager via


<CompatSortNLSVersion> Élément

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

Attributes

Caractéristique Descriptif
enabled Attribut obligatoire.

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

Attribut enabled

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

Éléments enfants

Aucun.

Éléments parents

Élément Descriptif
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.

Remarques

Étant donné que la comparaison de chaînes, le tri et les opérations de casse effectuées par la System.Globalization.CompareInfo classe 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 les versions antérieures en incluant l’élément dans le <CompatSortNLSVersion> fichier de configuration de votre application.

Important

La restauration des règles de comparaison de chaînes héritées et de tri nécessite é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 SetCompatibilitySwitches méthode lorsque vous créez le domaine d’application.

Example

L’exemple suivant instancie deux String objets et appelle la String.Compare(String, String, StringComparison) méthode pour les comparer à l’aide des 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, il affiche la sortie suivante :

sta follows a in the sort order.

Ceci est complètement différent de la sortie affichée lorsque vous exécutez l’exemple sur le .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’elle est exécutée sur .NET Framework 3.5.

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

Voir aussi