NeutralResourcesLanguageAttribute Class
Assembly: mscorlib (in mscorlib.dll)
'Declaration <ComVisibleAttribute(True)> _ <AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple:=False)> _ Public NotInheritable Class NeutralResourcesLanguageAttribute Inherits Attribute 'Usage Dim instance As NeutralResourcesLanguageAttribute
/** @attribute ComVisibleAttribute(true) */ /** @attribute AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple=false) */ public final class NeutralResourcesLanguageAttribute extends Attribute
ComVisibleAttribute(true) AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple=false) public final class NeutralResourcesLanguageAttribute extends Attribute
The NeutralResourcesLanguageAttribute informs the ResourceManager of the language used to write the neutral culture's resources for an assembly, and can also inform the ResourceManager of the assembly to use (either the main assembly or a satellite assembly) to retrieve neutral resources using the resource fallback process. When looking up resources in the same culture as the neutral resources language, the ResourceManager automatically uses the resources located in the main assembly, instead of searching for a satellite assembly with the current user interface culture for the current thread. This will improve lookup performance for the first resource you load, and can reduce your working set.
Note |
|---|
| Apply this attribute to your main assembly, passing it the name of the neutral language that will work with your main assembly. Optionally, you can pass a member of the UltimateResourceFallbackLocation enumeration to indicate the location from which to retrieve fallback resources. Using this attribute is strongly recommended. |
The following example demonstrates the use of the NeutralResourcesLanguageAttribute class.
Imports System Imports System.Resources Imports System.Globalization Imports System.Threading <assembly: NeutralResourcesLanguageAttribute("de", UltimateResourceFallbackLocation.Satellite)> Public Class Demo Public Overloads Shared Sub Main(ByVal args() As String) ' If a specific culture is passed in through the command line, use that -- otherwise ' just use the current ui culture Dim strCulture As String = "" If args.Length = 1 Then strCulture = args(0) End If If strCulture <> "" Then Try Thread.CurrentThread.CurrentUICulture = New CultureInfo(strCulture) Catch e As ArgumentException Console.WriteLine(e.Message, "Bad command-line argument") End Try Else Console.WriteLine("Current culture is: {0}", CultureInfo.CurrentUICulture.ToString()) End If Dim rm As ResourceManager Try rm = New ResourceManager("MyStrings", GetType(Demo).Assembly) Dim attr As New NeutralResourcesLanguageAttribute("de", UltimateResourceFallbackLocation.Satellite) Console.WriteLine(("Neutral language = " + rm.GetString("Language") + ", Fallback location = " + attr.Location.ToString() + ", Fallback culture = " + attr.CultureName.ToString())) Console.WriteLine(rm.GetString("MSG")) Catch e As MissingSatelliteAssemblyException Console.WriteLine(e.Message, "Unable to locate satellite Assembly") End Try End Sub 'Main End Class 'Demo
import System.*;
import System.Resources.*;
import System.Globalization.*;
import System.Threading.*;
/** @assembly NeutralResourcesLanguageAttribute("de",
UltimateResourceFallbackLocation.Satellite)
*/
public class Demo
{
public static void main(String[] args)
{
// If a specific culture is passed in through the command line, use
// that -- otherwise just use the current ui culture
String strCulture = "";
if (args.get_Length() == 1) {
strCulture = args[0];
}
if (!(strCulture.Equals(""))) {
try {
System.Threading.Thread.get_CurrentThread().
set_CurrentUICulture(new CultureInfo(strCulture));
}
catch (ArgumentException e) {
Console.WriteLine(e.get_Message(), "Bad command-line argument");
}
}
else {
Console.WriteLine("Current culture is: {0}",
CultureInfo.get_CurrentUICulture().ToString());
}
ResourceManager rm;
try {
rm = new ResourceManager("MyStrings",
Demo.class.ToType().get_Assembly());
NeutralResourcesLanguageAttribute attr =
new NeutralResourcesLanguageAttribute("de",
UltimateResourceFallbackLocation.Satellite);
Console.WriteLine("Neutral language = "
+ rm.GetString("Language") + ", Fallback location = "
+ attr.get_Location().ToString() + ", Fallback culture = "
+ attr.get_CultureName().ToString());
Console.WriteLine(rm.GetString("MSG"));
}
catch (MissingSatelliteAssemblyException e) {
Console.WriteLine(e.get_Message(),
"Unable to locate satellite Assembly");
}
} //main
} //Demo
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.
Note