NeutralResourcesLanguageAttribute Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menginformasikan manajer sumber daya tentang budaya default aplikasi. Kelas ini tidak dapat diwariskan.
public ref class NeutralResourcesLanguageAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)]
public sealed class NeutralResourcesLanguageAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class NeutralResourcesLanguageAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)>]
type NeutralResourcesLanguageAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type NeutralResourcesLanguageAttribute = class
inherit Attribute
Public NotInheritable Class NeutralResourcesLanguageAttribute
Inherits Attribute
- Warisan
- Atribut
Contoh
Contoh berikut menggunakan aplikasi "Halo Dunia" sederhana untuk mengilustrasikan penggunaan atribut NeutralResourcesLanguageAttribute untuk menentukan budaya default atau fallback. Ini membutuhkan pembuatan file sumber daya terpisah untuk budaya Inggris (en), Inggris (Amerika Serikat) (en-US), dan Prancis (Prancis) (fr-FR). Berikut ini menunjukkan konten file teks bernama ExampleResources.txt untuk budaya Inggris.
# Resources for the default (en) culture.
Greeting=Hello
Untuk menggunakan file sumber daya dalam aplikasi, Anda harus menggunakan Resource File Generator (Resgen.exe) untuk mengonversi file dari format teksnya (.txt) ke format biner (.resources) sebagai berikut:
resgen ExampleResources.txt
Saat aplikasi dikompilasi, file sumber daya biner akan disematkan di perakitan aplikasi utama.
Berikut ini memperlihatkan konten file teks bernama ExampleResources.en-US.txt yang menyediakan sumber daya untuk budaya Inggris (Amerika Serikat).
# Resources for the en-US culture.
Greeting=Hi
File teks dapat dikonversi ke file sumber daya biner dengan menggunakan Resource File Generator (ResGen.exe) di baris perintah sebagai berikut:
resgen ExampleResources.en-US.txt ExampleResources.en-US.resources
File sumber daya biner kemudian harus dikompilasi ke dalam rakitan dengan menggunakan Assembly Linker (Al.exe) dan ditempatkan di subdirektori en-US direktori aplikasi dengan mengeluarkan perintah berikut:
al /t:lib /embed:ExampleResources.en-US.resources /culture:en-US /out:en-us\Example.resources.dll
Berikut ini menunjukkan konten file teks bernama ExampleResources.fr-FR.txt yang menyediakan sumber daya untuk budaya Prancis (Prancis).
# Resources for the fr-FR culture.
Greeting=Bonjour
File teks dapat dikonversi ke file sumber daya biner dengan menggunakan ResGen.exe di baris perintah sebagai berikut:
resgen ExampleResources.fr-FR.txt ExampleResources.fr-FR.resources
File sumber daya biner kemudian harus dikompilasi ke dalam rakitan dengan menggunakan Assembly Linker dan ditempatkan di subdirektori fr-FR direktori aplikasi dengan mengeluarkan perintah berikut:
al /t:lib /embed:ExampleResources.fr-FR.resources /culture:fr-FR /out:fr-FR\Example.resources.dll
Contoh berikut menyediakan kode yang dapat dieksekusi yang mengatur budaya saat ini, meminta nama pengguna, dan menampilkan string yang dilokalkan.
using System;
using System.Globalization;
using System.Reflection;
using System.Resources;
using System.Threading;
[assembly: NeutralResourcesLanguageAttribute("en")]
public class Example
{
public static void Main()
{
// Select the current culture randomly to test resource fallback.
string[] cultures = { "de-DE", "en-us", "fr-FR" };
Random rnd = new Random();
int index = rnd.Next(0, cultures.Length);
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(cultures[index]);
Console.WriteLine($"The current culture is {CultureInfo.CurrentUICulture.Name}");
// Retrieve the resource.
ResourceManager rm = new ResourceManager("ExampleResources",
typeof(Example).Assembly);
string greeting = rm.GetString("Greeting");
Console.Write("Enter your name: ");
string name = Console.ReadLine();
Console.WriteLine($"{greeting} {name}!");
}
}
Imports System.Globalization
Imports System.Resources
Imports System.Threading
<Assembly:NeutralResourcesLanguageAttribute("en")>
Module Example
Public Sub Main()
' Select the current culture randomly to test resource fallback.
Dim cultures() As String = { "de-DE", "en-us", "fr-FR" }
Dim rnd As New Random()
Dim index As Integer = rnd.Next(0, cultures.Length)
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(cultures(index))
Console.WriteLine("The current culture is {0}",
CultureInfo.CurrentUICulture.Name)
' Retrieve the resource.
Dim rm As New ResourceManager("ExampleResources" , GetType(Example).Assembly)
Dim greeting As String = rm.GetString("Greeting")
Console.Write("Enter your name: ")
Dim name As String = Console.ReadLine()
Console.WriteLine("{0} {1}", greeting, name)
End Sub
End Module
Ini dapat dikompilasi dengan menggunakan perintah berikut di Visual Basic:
vbc Example.vb /resource:ExampleResources.resources
atau dengan menggunakan perintah berikut di C#:
csc Example.cs /resource:ExampleResources.resources
Keterangan
Di aplikasi desktop, atribut NeutralResourcesLanguageAttribute menginformasikan pengelola sumber daya budaya default aplikasi dan lokasi sumber dayanya. Secara default, sumber daya disematkan di perakitan aplikasi utama, dan Anda dapat menggunakan atribut sebagai berikut. Pernyataan ini menentukan bahwa bahasa Inggris (Amerika Serikat) adalah budaya default aplikasi.
[assembly: NeutralResourcesLanguage("en-US")]
<Assembly:NeutralResourcesLanguage("en-US")>
Anda juga dapat menggunakan atribut NeutralResourcesLanguageAttribute untuk menunjukkan di mana ResourceManager dapat menemukan sumber daya budaya default dengan memberikan nilai enumerasi UltimateResourceFallbackLocation dalam pernyataan atribut. Ini paling umum dilakukan untuk menunjukkan bahwa sumber daya berada di perakitan satelit. Misalnya, pernyataan berikut menentukan bahwa Bahasa Inggris (Amerika Serikat) adalah budaya default atau netral aplikasi dan bahwa sumber dayanya berada di rakitan satelit. Objek ResourceManager akan mencarinya dalam subdirektori bernama en-US.
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
<Assembly:NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>
Tip
Kami menyarankan agar Anda selalu menggunakan atribut NeutralResourcesLanguageAttribute untuk menentukan budaya default aplikasi Anda.
Atribut melakukan dua peran:
Jika sumber daya budaya default disematkan dalam perakitan utama aplikasi dan ResourceManager harus mengambil sumber daya yang termasuk dalam budaya yang sama dengan budaya default, ResourceManager secara otomatis menggunakan sumber daya yang terletak di perakitan utama alih-alih mencari perakitan satelit. Ini melewati pengecekan rakitan yang biasanya dilakukan, meningkatkan performa pencarian untuk sumber daya pertama yang Anda muat, dan dapat mengurangi set kerja Anda. Lihat Pengemasan dan Penyebaran Sumber Daya untuk proses yang ResourceManager gunakan untuk memeriksa file sumber daya.
Jika sumber daya default terletak di rakitan satelit, bukan di perakitan aplikasi utama, atribut NeutralResourcesLanguageAttribute merujuk pada budaya dan direktori tempat runtime dapat memuat sumber daya.
Konstruktor
| Nama | Deskripsi |
|---|---|
| NeutralResourcesLanguageAttribute(String, UltimateResourceFallbackLocation) |
Menginisialisasi instans NeutralResourcesLanguageAttribute baru kelas dengan lokasi fallback sumber daya utama yang ditentukan. |
| NeutralResourcesLanguageAttribute(String) |
Menginisialisasi instans baru dari kelas NeutralResourcesLanguageAttribute. |
Properti
| Nama | Deskripsi |
|---|---|
| CultureName |
Mendapatkan nama budaya. |
| Location |
Mendapatkan lokasi untuk ResourceManager digunakan kelas untuk mengambil sumber daya netral dengan menggunakan proses fallback sumber daya. |
| TypeId |
Ketika diimplementasikan dalam kelas turunan, mendapatkan pengidentifikasi unik untuk Attributeini. (Diperoleh dari Attribute) |
Metode
| Nama | Deskripsi |
|---|---|
| Equals(Object) |
Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
| GetHashCode() |
Mengembalikan kode hash untuk instans ini. (Diperoleh dari Attribute) |
| GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
| IsDefaultAttribute() |
Ketika ditimpa dalam kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan. (Diperoleh dari Attribute) |
| Match(Object) |
Saat ditimpa dalam kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai. (Diperoleh dari Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka. (Diperoleh dari Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1). (Diperoleh dari Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Menyediakan akses ke properti dan metode yang diekspos oleh objek. (Diperoleh dari Attribute) |