Freigeben über


NeutralResourcesLanguageAttribute-Klasse

Benachrichtigt den ResourceManager über die neutrale Kultur einer Assembly. Diese Klasse kann nicht vererbt werden.

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

Syntax

'Declaration
<ComVisibleAttribute(True)> _
<AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple:=False)> _
Public NotInheritable Class NeutralResourcesLanguageAttribute
    Inherits Attribute
'Usage
Dim instance As NeutralResourcesLanguageAttribute
[ComVisibleAttribute(true)] 
[AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple=false)] 
public sealed class NeutralResourcesLanguageAttribute : Attribute
[ComVisibleAttribute(true)] 
[AttributeUsageAttribute(AttributeTargets::Assembly, AllowMultiple=false)] 
public ref class NeutralResourcesLanguageAttribute sealed : public 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

Hinweise

Das NeutralResourcesLanguageAttribute informiert den ResourceManager über die Sprache für das Schreiben der Ressourcen einer neutralen Kultur für eine Assembly. Außerdem kann damit der ResourceManager über die für das Abrufen neutraler Ressourcen mit dem Prozess des Ressourcenfallbacks zu verwendende Assembly informiert werden (entweder die Hauptassembly oder eine Satellitenassembly). Wenn Ressourcen in derselben Kultur gesucht werden, in der sich die Sprache der neutralen Ressourcen befindet, sucht der ResourceManager nicht nach einer Satellitenassembly mit der aktuellen Benutzeroberflächenkultur für den aktuellen Thread, sondern verwendet automatisch die Ressourcen der Hauptassembly. Auf diese Weise wird die Suchleistung für die erste zu ladende Ressource verbessert, und Ihr Workingset kann sich verkleinern.

Hinweis

Wenden Sie dieses Attribut auf die Hauptassembly an, wobei Sie dieser den Namen der neutralen Sprache übergeben, die für die Hauptassembly verwendet wird. Sie können auch einen Member der UltimateResourceFallbackLocation-Enumeration übergeben, um den Ort anzugeben, von dem die Fallbackressourcen abgerufen werden. Die Verwendung dieses Attributs wird dringend empfohlen.

Beispiel

Im folgenden Beispiel wird die Verwendung der NeutralResourcesLanguageAttribute-Klasse veranschaulicht.

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 

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");
        }



        }

}
using namespace System;
using namespace System::Resources;
using namespace System::Globalization;
using namespace System::Threading;

[assembly:NeutralResourcesLanguageAttribute("de",UltimateResourceFallbackLocation::Satellite)];
public ref class Demo
{
public:
   int FallbackDemo()
   {
      array<String^>^args = Environment::GetCommandLineArgs();
      
      // If a specific culture is passed in through the command line, use that -- otherwise
      // just use the current ui culture
      String^ strCulture = L"";
      if ( args->Length == 1 )
      {
         strCulture = args[ 0 ];
      }

      if (  !strCulture->Equals( L"" ) )
      {
         try
         {
            Thread::CurrentThread->CurrentUICulture = gcnew CultureInfo( strCulture );
         }
         catch ( ArgumentException^ e ) 
         {
            Console::WriteLine( e->Message, L"Bad command-line argument" );
         }

      }
      else
            Console::WriteLine( L"Current culture is: {0}", CultureInfo::CurrentUICulture );

      ResourceManager^ rm;
      try
      {
         
         rm = gcnew ResourceManager( L"MyStrings",Demo::typeid->Assembly );
         NeutralResourcesLanguageAttribute^ attr = gcnew NeutralResourcesLanguageAttribute( L"de",UltimateResourceFallbackLocation::Satellite );
         
         Console::WriteLine( L"Neutral language = {0}, Fallback location = {1}, Fallback culture = {2}", rm->GetString( L"Language" ), attr->Location, attr->CultureName );
         Console::WriteLine( rm->GetString( L"MSG" ) );
      }
      catch ( MissingSatelliteAssemblyException^ e ) 
      {
         Console::WriteLine( e->Message, L"Unable to locate satellite Assembly" );
      }

      return 1;
   }

};

void main()
{
   Demo^ d = gcnew Demo;
   d->FallbackDemo();
}
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

Vererbungshierarchie

System.Object
   System.Attribute
    System.Resources.NeutralResourcesLanguageAttribute

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

NeutralResourcesLanguageAttribute-Member
System.Resources-Namespace
UltimateResourceFallbackLocation
FallbackLocation

Weitere Ressourcen

Verpacken und Bereitstellen von Ressourcen