Share via


Elemen <CompatSortNLSVersion>

Menentukan bahwa runtime harus menggunakan pesanan pengurutan lama saat melakukan perbandingan string.

<konfigurasi>
  <runtime>
    <CompatSortNLSVersion>

Sintaks

<CompatSortNLSVersion
   enabled="4096"/>  

Atribut dan Elemen

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

Atribut

Atribut Deskripsi
enabled Atribut yang diperlukan.

Menentukan ID lokal yang urutan pengurutannya akan digunakan.

mengaktifkan Atribut

Nilai Deskripsi
4096 ID lokal yang mewakili urutan pengurutan alternatif. Dalam hal ini, 4096 mewakili urutan jenis .NET Framework 3.5 dan versi sebelumnya.

Elemen Anak

Tidak ada.

Elemen Induk

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

Keterangan

Karena perbandingan string, pengurutan, dan operasi casing yang dilakukan oleh kelas System.Globalization.CompareInfo di .NET Framework 4 sesuai dengan standar Unicode 5.1, hasil metode perbandingan string seperti String.Compare(String, String) dan String.LastIndexOf(String) mungkin berbeda dari versi sebelumnya. .NET Framework. 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 elemen <CompatSortNLSVersion> dalam file konfigurasi aplikasi Anda.

Penting

Memulihkan perbandingan string lama dan aturan penyortiran juga memerlukan 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 metode SetCompatibilitySwitches saat Anda membuat domain aplikasi.

Contoh

Contoh berikut membuat instans dua objek String dan memanggil metode String.Compare(String, String, StringComparison) 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, itu menampilkan output berikut:

sta follows a in the sort order.  

Ini benar-benar 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, output 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