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