Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

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)

[ComVisibleAttribute(true)] 
[AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple=false)] 
public sealed class NeutralResourcesLanguageAttribute : Attribute
/** @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.

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 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.

.NET Framework

Supported in: 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

Show:
© 2014 Microsoft