Pembuatan budaya dan pemetaan kasus dalam mode globalisasi-invarian

Perubahan yang melanggar ini memengaruhi mode globalisasi-invariant dengan dua cara:

  • Sebelumnya, .NET mengizinkan budaya apa pun dibuat dalam mode globalisasi-invariant, selama nama budaya sesuai dengan BCP-47. Namun, data budaya invarian digunakan alih-alih data budaya nyata. Mulai dari .NET 6, pengecualian dilemparkan jika Anda menciptakan budaya apa pun selain budaya invarian dalam mode globalisasi-invariant.
  • Sebelumnya, mode globalisasi-invariant hanya mendukung pemetaan kasus untuk karakter ASCII. Mulai dari .NET 6, mode globalisasi-invariant menyediakan dukungan pemetaan kasus penuh untuk semua karakter yang ditentukan Unicode. Pemetaan kasus digunakan dalam operasi seperti perbandingan string, pencarian string, dan string casing atas atau bawah.

Mode globalisasi-invariant digunakan untuk aplikasi yang tidak memerlukan dukungan globalisasi apa pun. Artinya, aplikasi berjalan tanpa akses ke data dan perilaku khusus budaya. Mode globalisasi-invariant diaktifkan secara default pada beberapa kontainer Docker, misalnya, kontainer Alpine.

Perilaku yang lama

Dalam versi .NET sebelumnya saat mode globalisasi-invariant diaktifkan:

  • Jika aplikasi menciptakan budaya yang bukan budaya invarian, operasi berhasil tetapi budaya yang dikembalikan selalu menggunakan data budaya yang invarian alih-alih data budaya nyata.

  • Pemetaan kasus dilakukan hanya untuk karakter ASCII. Misalnya:

    if ("Á".Equals("á", StringComparison.CurrentCultureIgnoreCase)) // Evaluates to false.
    

Perilaku yang baru

Mulai dari .NET 6 saat mode globalisasi-invariant diaktifkan:

  • Jika aplikasi mencoba menciptakan budaya yang bukan budaya invarian, CultureNotFoundException pengecualian akan dilemparkan.

  • Pemetaan kasus dilakukan untuk semua karakter yang ditentukan Unicode. Misalnya:

    if ("Á".Equals("á", StringComparison.CurrentCultureIgnoreCase)) // Evaluates to true.
    

Versi yang diperkenalkan

.NET 6

Alasan untuk berubah

Perubahan penciptaan budaya diperkenalkan dengan lebih mudah mendiagnosis masalah terkait budaya. Beberapa pengguna tidak menyadari bahwa aplikasi mereka berjalan di lingkungan tempat mode globalisasi-invariant diaktifkan. Mereka mungkin mengalami perilaku tak terduga dan tidak membuat asosiasi dengan mode globalisasi-invariant, jadi sulit untuk mendiagnosis masalah.

Dukungan pemetaan kasus lengkap diperkenalkan untuk kegunaan dan pengalaman yang lebih baik dalam mode globalisasi-invariant.

Dalam kebanyakan kasus, tidak ada tindakan yang diperlukan. Namun, jika Anda menginginkan perilaku pembuatan budaya sebelumnya, Anda dapat mengatur opsi konfigurasi runtime untuk memungkinkan penciptaan budaya apa pun dalam mode globalisasi-invariant. Untuk informasi selengkapnya, lihat Budaya yang telah ditentukan sebelumnya.

API yang Terpengaruh

Lihat juga