Bagikan melalui


Algoritma pemuatan rakitan satelit

Rakitan satelit digunakan untuk menyimpan sumber daya yang dilokalkan yang disesuaikan untuk bahasa dan budaya.

Rakitan satelit menggunakan algoritma pemuatan yang berbeda dari rakitan yang dikelola umum.

Kapan dimuat rakitan satelit?

Rakitan satelit dimuat saat memuat sumber daya yang dilokalkan.

API dasar untuk memuat sumber daya yang dilokalkan adalah System.Resources.ResourceManager kelas . Pada akhirnya, kelas ResourceManager akan memanggil metode GetSatelliteAssembly untuk setiap CultureInfo.Name.

API tingkat yang lebih tinggi dapat mengabstraksi API tingkat rendah.

Algoritma

Proses fallback sumber daya .NET Core melibatkan langkah-langkah berikut:

  1. Tentukan activeAssemblyLoadContext instance. Dalam semua kasus, active instans adalah AssemblyLoadContext assembly yang mengeksekusi.

  2. active Instans memuat rakitan satelit untuk budaya yang diminta dalam urutan prioritas berikut:

  3. Jika rakitan satelit dimuat:

    • Acara AppDomain.AssemblyLoad dinaikkan.
    • Rakitan sedang dicari untuk menemukan sumber daya yang diminta. Jika runtime menemukan sumber daya di assembly, runtime tersebut akan menggunakannya. Jika tidak menemukan sumber daya, pencarian akan dilanjutkan.

    Catatan

    Untuk menemukan sumber daya dalam rakitan satelit, runtime mencari file sumber daya yang diminta oleh untuk terkini. Dalam file sumber daya, file tersebut mencari nama sumber daya yang diminta. Jika keduanya tidak ditemukan, sumber daya diperlakukan sebagai tidak ditemukan.

  4. Selanjutnya ResourceManager mencari rakitan budaya induk melalui banyak tingkat potensial, setiap kali mengulangi langkah 2 & 3.

    Setiap budaya hanya memiliki satu induk, yang didefinisikan oleh CultureInfo.Parent properti .

    Pencarian budaya induk berhenti ketika properti budaya Parent adalah CultureInfo.InvariantCulture.

    Untuk , kami tidak kembali ke langkah 2 & 3, melainkan melanjutkan dengan langkah 5.

  5. Jika sumber daya masih belum ditemukan, ResourceManager akan menggunakan sumber daya untuk budaya default (fallback).

    Biasanya, sumber daya untuk budaya default disertakan dalam perakitan aplikasi utama. Namun, Anda dapat menentukan UltimateResourceFallbackLocation.Satellite untuk NeutralResourcesLanguageAttribute.Location properti . Nilai ini menunjukkan bahwa lokasi cadangan terakhir untuk sumber daya adalah perakitan satelit daripada perakitan utama.

    Catatan

    Budaya default adalah fallback utama. Oleh karena itu, kami sarankan Anda selalu menyertakan sekumpulan sumber daya lengkap dalam file sumber daya default. Ini membantu mencegah pengecualian dilemparkan. Dengan memiliki kumpulan yang menyeluruh, Anda menyediakan alternatif untuk semua sumber daya dan memastikan bahwa setidaknya satu sumber daya selalu tersedia bagi pengguna, bahkan jika tidak spesifik secara budaya.

  6. Akhirnya