Condividi tramite


<CompatSortNLSVersion> Elemento

Specifica che il runtime deve usare gli ordini di ordinamento legacy durante l'esecuzione di confronti tra stringhe.

<configurazione>
   <Runtime>
     <CompatSortNLSVersion>

Sintassi

<CompatSortNLSVersion
   enabled="4096"/>

Attributi ed elementi

Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.

Attributes

Attribute Description
enabled Attributo obbligatorio.

Specifica l'ID delle impostazioni locali il cui ordinamento deve essere utilizzato.

Attributo abilitato

Value Description
4096 ID delle impostazioni locali che rappresenta un ordinamento alternativo. In questo caso, 4096 rappresenta l'ordinamento di .NET Framework 3.5 e versioni precedenti.

Elementi figli

Nessuno.

Elementi padre

Elemento Description
configuration Elemento radice in ciascun file di configurazione usato in Common Language Runtime e nelle applicazioni .NET Framework.
runtime Contiene informazioni sulle opzioni di inizializzazione in fase di esecuzione.

Osservazioni:

Poiché il confronto di stringhe, l'ordinamento e le operazioni di maiuscole e minuscole eseguite dalla System.Globalization.CompareInfo classe in .NET Framework 4 sono conformi allo standard Unicode 5.1, i risultati dei metodi di confronto tra stringhe come String.Compare(String, String) e String.LastIndexOf(String) possono differire dalle versioni precedenti di .NET Framework. Se l'applicazione dipende dal comportamento legacy, è possibile ripristinare il confronto delle stringhe e le regole di ordinamento usate in .NET Framework 3.5 e versioni precedenti includendo l'elemento <CompatSortNLSVersion> nel file di configurazione dell'applicazione.

Importante

Il ripristino di regole di confronto e ordinamento delle stringhe legacy richiede anche che la libreria di collegamento dinamico sort00001000.dll sia disponibile nel sistema locale.

È anche possibile usare regole di ordinamento e confronto di stringhe legacy in un dominio applicazione specifico passando la stringa "NetFx40_Legacy20SortingBehavior" al SetCompatibilitySwitches metodo quando si crea il dominio applicazione.

Example

Nell'esempio seguente vengono creati due String oggetti e viene chiamato il String.Compare(String, String, StringComparison) metodo per confrontarli usando le convenzioni delle impostazioni cultura correnti.

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

Quando si esegue l'esempio in .NET Framework 4, viene visualizzato l'output seguente:

sta follows a in the sort order.

Questo è completamente diverso dall'output visualizzato quando si esegue l'esempio in .NET Framework 3.5:

sta equals a in the sort order.

Tuttavia, se si aggiunge il file di configurazione seguente alla directory dell'esempio e quindi si esegue l'esempio in .NET Framework 4, l'output è identico a quello prodotto dall'esempio quando viene eseguito in .NET Framework 3.5.

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

Vedere anche