Sumber daya di aplikasi .NET

Hampir setiap aplikasi berkualitas produksi harus menggunakan sumber daya. Sumber daya adalah data yang tidak dapat dieksekusi yang disebarkan secara logis dengan aplikasi. Sumber daya mungkin ditampilkan di aplikasi sebagai pesan kesalahan atau sebagai bagian dari antarmuka pengguna. Sumber daya dapat berisi data dalam sejumlah formulir, termasuk string, gambar, dan objek yang dipertahankan. (Untuk menulis objek yang bertahan ke file sumber daya, objek harus dapat diserialisasikan.) Menyimpan data Anda dalam file sumber daya memungkinkan Anda mengubah data tanpa mengkompresi ulang seluruh aplikasi Anda. Ini juga memungkinkan Anda untuk menyimpan data di satu lokasi, dan menghilangkan kebutuhan untuk mengandalkan data yang dikodekan secara permanen yang disimpan di beberapa lokasi.

.NET memberikan dukungan komprehensif untuk pembuatan dan pelokalan sumber daya. Selain itu, .NET mendukung model sederhana untuk mengemas dan menyebarkan sumber daya yang dilokalkan.

Membuat dan melokalisasi sumber daya

Dalam aplikasi yang tidak dilokalkan, Anda dapat menggunakan file sumber daya sebagai repositori untuk data aplikasi, terutama untuk string yang mungkin dikodekan secara permanen di beberapa lokasi dalam kode sumber. Paling umum, Anda membuat sumber daya sebagai file teks (.txt) atau XML (.resx), dan menggunakan Resgen.exe (Resource File Generator) untuk mengkompilasinya ke dalam file biner .resources. File-file ini kemudian dapat disematkan dalam file aplikasi yang dapat dieksekusi oleh pengkompilasi bahasa. Untuk informasi selengkapnya tentang membuat sumber daya, lihat Membuat file sumber daya.

Anda juga dapat melokalisasi sumber daya aplikasi untuk budaya tertentu. Ini memungkinkan Anda membuat versi aplikasi yang dilokalkan (diterjemahkan). Saat Anda mengembangkan aplikasi yang menggunakan sumber daya yang dilokalkan, Anda menunjuk budaya yang berfungsi sebagai budaya netral atau fallback yang sumber dayanya digunakan jika tidak ada sumber daya yang sesuai yang tersedia. Biasanya, sumber daya budaya netral disimpan dalam aplikasi yang dapat dieksekusi. Sumber daya yang tersisa untuk budaya terlokalisasi individu disimpan dalam rakitan satelit mandiri. Untuk informasi selengkapnya, lihat Membuat rakitan satelit.

Mengemas dan menerapkan sumber daya

Anda menyebarkan sumber daya aplikasi yang dilokalkan di rakitan satelit. Sebuah rakitan satelit berisi sumber daya dari satu budaya; ini tidak berisi kode aplikasi apa pun. Dalam model penyebaran perakitan satelit, Anda membuat aplikasi dengan satu assembly default (yang biasanya merupakan assembly utama) dan satu rakitan satelit untuk setiap budaya yang didukung aplikasi. Karena rakitan satelit bukan bagian dari perakitan utama, Anda dapat dengan mudah mengganti atau memperbarui sumber daya yang sesuai dengan budaya tertentu tanpa mengganti rakitan utama aplikasi.

Tentukan dengan cermat sumber daya mana yang akan membentuk perakitan sumber daya default aplikasi Anda. Karena itu adalah bagian dari rakitan utama, setiap perubahan pada itu akan mengharuskan Anda untuk mengganti assembly utama. Jika Anda tidak menyediakan sumber daya default, pengecualian akan dilemparkan ketika proses fallback sumber daya mencoba menemukannya. Dalam aplikasi yang dirancang dengan baik, menggunakan sumber daya tidak boleh melemparkan pengecualian.

Untuk informasi selengkapnya, lihat artikel Mengemas dan Menyebarkan Sumber Daya .

Mengambil sumber daya

Pada waktu proses, aplikasi memuat sumber daya yang dilokalkan sesuai berdasarkan per utas, berdasarkan budaya yang ditentukan oleh CultureInfo.CurrentUICulture properti . Nilai properti ini diturunkan sebagai berikut:

  • Dengan secara langsung menetapkan CultureInfo objek yang mewakili budaya yang dilokalkan ke Thread.CurrentUICulture properti .

  • Jika budaya tidak ditetapkan secara eksplisit, dengan mengambil budaya UI utas default dari CultureInfo.DefaultThreadCurrentUICulture properti .

  • Jika budaya UI utas default tidak ditetapkan secara eksplisit, dengan mengambil budaya untuk pengguna saat ini di komputer lokal. Implementasi .NET yang berjalan pada Windows melakukan ini dengan memanggil fungsi Windows GetUserDefaultUILanguage .

Untuk informasi selengkapnya tentang bagaimana budaya UI saat ini diatur, lihat CultureInfo halaman referensi dan CultureInfo.CurrentUICulture .

Anda kemudian dapat mengambil sumber daya untuk budaya UI saat ini atau untuk budaya tertentu dengan menggunakan System.Resources.ResourceManager kelas . ResourceManager Meskipun kelas ini paling umum digunakan untuk mengambil sumber daya, System.Resources namespace berisi jenis tambahan yang dapat Anda gunakan untuk mengambil sumber daya. Ini termasuk:

  • Kelas ResourceReader , yang memungkinkan Anda menghitung sumber daya yang disematkan dalam rakitan atau disimpan dalam file .resources biner mandiri. Ini berguna ketika Anda tidak tahu nama yang tepat dari sumber daya yang tersedia pada waktu proses.

  • Kelas ResXResourceReader , yang memungkinkan Anda mengambil sumber daya dari file XML (.resx).

  • Kelas ResourceSet , yang memungkinkan Anda untuk mengambil sumber daya budaya tertentu tanpa mengamati aturan fallback. Sumber daya dapat disimpan dalam rakitan atau file .resources biner mandiri. Anda juga dapat mengembangkan IResourceReader implementasi yang memungkinkan Anda menggunakan ResourceSet kelas untuk mengambil sumber daya dari beberapa sumber lain.

  • Kelas ResXResourceSet , yang memungkinkan Anda untuk mengambil semua item dalam file sumber daya XML ke dalam memori.

Lihat juga