<CompatSortNLSVersion-element>
Anger att körningen ska använda äldre sorteringsordningar när strängjämförelser utförs.
<Konfiguration>
<Runtime>
<CompatSortNLSVersion>
Syntax
<CompatSortNLSVersion
enabled="4096"/>
Attribut och element
I följande avsnitt beskrivs attribut, underordnade element och överordnade element.
Attribut
Attribut | Beskrivning |
---|---|
enabled |
Obligatoriskt attribut. Anger det språkvariant-ID vars sorteringsordning ska användas. |
aktiverat attribut
Värde | Beskrivning |
---|---|
4096 | Språkvariant-ID:t som representerar en alternativ sorteringsordning. I det här fallet representerar 4096 sorteringsordningen för .NET Framework 3.5 och tidigare versioner. |
Underordnade element
Inga.
Överordnade element
Element | Beskrivning |
---|---|
configuration |
Rotelementet i varje konfigurationsfil som används av common language runtime och .NET Framework program. |
runtime |
Innehåller information om initieringsalternativ för körning. |
Kommentarer
Eftersom strängjämförelse, sortering och höljesåtgärder som utförs av System.Globalization.CompareInfo klassen i .NET Framework 4 överensstämmer med Unicode 5.1-standarden kan resultatet av strängjämförelsemetoder som String.Compare(String, String) och String.LastIndexOf(String) kan skilja sig från tidigare versioner av .NET Framework. Om ditt program är beroende av äldre beteende kan du återställa strängjämförelse- och sorteringsreglerna som används i .NET Framework 3.5 och tidigare versioner genom att inkludera elementet <CompatSortNLSVersion>
i programmets konfigurationsfil.
Viktigt
Återställning av äldre strängjämförelse och sorteringsregler kräver också att det sort00001000.dll dynamiska länkbiblioteket är tillgängligt i det lokala systemet.
Du kan också använda äldre strängsorterings- och jämförelseregler i en specifik programdomän genom att skicka strängen "NetFx40_Legacy20SortingBehavior" till SetCompatibilitySwitches metoden när du skapar programdomänen.
Exempel
I följande exempel instansieras två String objekt och metoden anropas String.Compare(String, String, StringComparison) för att jämföra dem med hjälp av den aktuella kulturens konventioner.
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
När du kör exemplet på .NET Framework 4 visas följande utdata:
sta follows a in the sort order.
Detta skiljer sig helt från de utdata som visas när du kör exemplet på .NET Framework 3.5:
sta equals a in the sort order.
Men om du lägger till följande konfigurationsfil i exemplets katalog och sedan kör exemplet på .NET Framework 4 är utdata identiska med dem som genereras av exemplet när det körs på .NET Framework 3.5.
<?xml version ="1.0"?>
<configuration>
<runtime>
<CompatSortNLSVersion enabled="4096"/>
</runtime>
</configuration>