Compartilhar via


<CompatSortNLSVersion> Elemento

Especifica que o runtime deve usar ordens de classificação herdada ao realizar comparações de seqüência de caracteres.

<CompatSortNLSVersion  
   enabled="4096"/

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho, e elementos pai.

Atributos

Atributo

Descrição

enabled

Atributo obrigatório.

Especifica a identificação de localidade cuja ordem de classificação deve ser usada.

Atributo enabled

Valor

Descrição

4096

A identificação de localidade que representa uma ordem de classificação alternativa. Nesse caso, 4096 representa a ordem de classificação de .NET Framework 3.5 e versões anteriores.

Elementos filho

Nenhum.

Elementos pai

Elemento

Descrição

configuration

O elemento raiz em cada arquivo de configuração usadas pelos common language runtime e .NET Framework aplicativos.

runtime

Contém informações sobre as opções de inicialização do runtime.

Comentários

Porque a comparação de seqüência de caracteres, classificação e operações de capitalização realizada pelo System.Globalization.CompareInfo classe na .NET Framework 4 está de acordo com o 5.1 Unicode padrão, os resultados dos métodos de comparação de seqüência de caracteres, como String.Compare(String, String) e String.LastIndexOf(String) podem ser diferentes das versões anteriores do.NET Framework. Se seu aplicativo depende do comportamento herdado, você pode restaurar a comparação de seqüência de caracteres e regras de classificação usadas na .NET Framework 3.5 e versões anteriores, incluindo o <CompatSortNLSVersion> elemento no arquivo de configuração do. seu aplicativo

Observação importanteImportante

Restaurando a comparação de seqüências de legado e regras de classificação também requer uma biblioteca de vínculo dinâmico sort00001000.dll esteja disponível no sistema local.

Você também pode usar regras de classificação e comparação de seqüência herdados em um domínio de aplicativo específico, passando a seqüência de caracteres "netfx40_legacy20sortingbehavior" para o SetCompatibilitySwitches método quando você cria o domínio de aplicativo.

Exemplo

O exemplo a seguir instancia dois String objetos e chama o String.Compare(String, String, StringComparison) método compará-las usando as convenções de cultura atual.

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

Quando você executa o exemplo na .NET Framework 4, ele exibe a saída a seguir.

sta follows a in the sort order.

Isso é completamente diferente da que é exibida quando você executar o exemplo saída do .NET Framework 3.5.

sta equals a in the sort order.

No entanto, se você adicionar a seguinte configuração de diretório do exemplo do arquivo e, em seguida, executar o exemplo .NET Framework 4, a saída é idêntica ao produzido pelo exemplo, quando ele é executado na .NET Framework 3.5.

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

Consulte também

Referência

Esquema configurações Runtime

Outros recursos

Esquema do arquivo de configuração para o.NET Framework

Histórico de alterações

Date

History

Motivo

Maio de 2010

Observe que o <CompatSortNLSVersion> switch depende sort00001000.dll.

Correção de bug de conteúdo.