Export (0) Print
Expand All

NeutralResourcesLanguageAttribute Class

Informs the ResourceManager of the neutral culture of an assembly. This class cannot be inherited.

Namespace: System.Resources
Assembly: mscorlib (in mscorlib.dll)

[AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple=false)] 
[ComVisibleAttribute(true)] 
public sealed class NeutralResourcesLanguageAttribute : Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple=false) */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class NeutralResourcesLanguageAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple=false) 
ComVisibleAttribute(true) 
public final class NeutralResourcesLanguageAttribute extends Attribute
Not applicable.

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.

NoteNote:

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.

using System;
using System.Resources;
using System.Globalization;
using 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.Length == 1) 
			{
				strCulture = args[0];
			}
		if (strCulture != "") 
		{
			try {
				Thread.CurrentThread.CurrentUICulture = new CultureInfo(strCulture);
			}
			catch (ArgumentException e){
				Console.WriteLine(e.Message, "Bad command-line argument");
			}
		}
		else
			Console.WriteLine("Current culture is: {0}", CultureInfo.CurrentUICulture.ToString());

		ResourceManager rm;

		try
		{
			rm = new ResourceManager("MyStrings", typeof(Demo).Assembly);
			NeutralResourcesLanguageAttribute attr = 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 (MissingSatelliteAssemblyException e){
			Console.WriteLine(e.Message, "Unable to locate satellite Assembly");
		}



        }

}

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

System.Object
   System.Attribute
    System.Resources.NeutralResourcesLanguageAttribute

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 98, Windows Server 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 Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

XNA Framework

Supported in: 1.0

Community Additions

ADD
Show:
© 2014 Microsoft