<CompatSortNLSVersion> Elemen

Menentukan bahwa runtime harus menggunakan urutan pengurutan warisan saat melakukan perbandingan string.

<configuration>
  <runtime>
    <CompatSortNLSVersion>

Syntax

<CompatSortNLSVersion
   enabled="4096"/>

Atribut dan Elemen

Bagian berikut menjelaskan atribut, elemen turunan, dan elemen induk.

Attributes

Attribute Description
enabled Atribut yang diperlukan.

Menentukan ID lokal yang urutan pengurutannya akan digunakan.

Atribut yang diaktifkan

Nilai Description
4096 ID lokal yang mewakili urutan pengurutan alternatif. Dalam hal ini, 4096 mewakili urutan pengurutan .NET Framework 3.5 dan versi yang lebih lama.

Elemen Anak

Tidak ada.

Elemen Induk

Elemen Description
configuration Elemen akar di setiap file konfigurasi yang digunakan oleh runtime dan aplikasi .NET Framework.
runtime Berisi informasi tentang opsi inisialisasi runtime.

Komentar

Karena perbandingan string, pengurutan, dan operasi casing yang dilakukan oleh kelas di .NET Framework 4 sesuai dengan System.Globalization.CompareInfo standar Unicode 5.1, hasil metode perbandingan string seperti String.Compare(String, String) dan String.LastIndexOf(String) mungkin berbeda dari versi .NET Framework sebelumnya. Jika aplikasi Bergantung pada perilaku warisan, Anda dapat memulihkan perbandingan string dan aturan pengurutan yang digunakan dalam .NET Framework 3.5 dan versi yang lebih lama dengan menyertakan <CompatSortNLSVersion> elemen dalam file konfigurasi aplikasi Anda.

Penting

Memulihkan perbandingan string warisan dan aturan pengurutan juga mengharuskan pustaka tautan dinamis sort00001000.dll tersedia di sistem lokal.

Anda juga dapat menggunakan pengurutan string warisan dan aturan perbandingan di domain aplikasi tertentu dengan meneruskan string "NetFx40_Legacy20SortingBehavior" ke SetCompatibilitySwitches metode saat Anda membuat domain aplikasi.

Example

Contoh berikut membuat instans dua String objek dan memanggil String.Compare(String, String, StringComparison) metode untuk membandingkannya dengan menggunakan konvensi budaya saat ini.

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

Saat Anda menjalankan contoh pada .NET Framework 4, contoh akan menampilkan output berikut:

sta follows a in the sort order.

Ini sama sekali berbeda dari output yang ditampilkan saat Anda menjalankan contoh pada .NET Framework 3.5:

sta equals a in the sort order.

Namun, jika Anda menambahkan file konfigurasi berikut ke direktori contoh lalu menjalankan contoh pada .NET Framework 4, outputnya identik dengan yang dihasilkan oleh contoh saat dijalankan pada .NET Framework 3.5.

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

Lihat juga