다음을 통해 공유


NeutralResourcesLanguageAttribute 클래스

ResourceManager에 어셈블리의 중립 culture를 알립니다. 이 클래스는 상속될 수 없습니다.

네임스페이스: System.Resources
어셈블리: mscorlib(mscorlib.dll)

구문

‘선언
<ComVisibleAttribute(True)> _
<AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple:=False)> _
Public NotInheritable Class NeutralResourcesLanguageAttribute
    Inherits Attribute
‘사용 방법
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

설명

NeutralResourcesLanguageAttribute는 어셈블리에 대한 중립 culture의 리소스를 작성하는 데 사용되는 언어를 ResourceManager에 알립니다. 또한 리소스 대체(fallback) 프로세스를 사용하여 중립 리소스를 검색하는 데 사용할 어셈블리(주 어셈블리 또는 위성 어셈블리)를 ResourceManager에 알릴 수도 있습니다. 중립 리소스 언어와 같은 culture의 리소스를 찾는 경우 ResourceManager는 현재 스레드에 대한 현재 사용자 인터페이스 culture를 사용하여 위성 어셈블리를 검색하는 대신 주 어셈블리에 있는 리소스를 자동으로 사용합니다. 이렇게 하면 로드한 첫 리소스에 대한 찾기 성능을 향상시킬 수 있으며, 작업이 간단해 집니다.

참고

주 어셈블리에 이 특성을 적용한 다음 주 어셈블리가 사용할 중립 언어의 이름을 이 특성에 전달합니다. 경우에 따라 UltimateResourceFallbackLocation 열거형의 멤버를 전달하여 대체(fallback) 리소스를 검색할 위치를 나타낼 수 있습니다. 가능하면 이 특성을 사용하는 것이 좋습니다.

예제

다음 예제에서는 NeutralResourcesLanguageAttribute 클래스를 사용하는 방법을 보여 줍니다.

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

상속 계층 구조

System.Object
   System.Attribute
    System.Resources.NeutralResourcesLanguageAttribute

스레드로부터의 안전성

이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

플랫폼

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

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0, 1.0에서 지원

참고 항목

참조

NeutralResourcesLanguageAttribute 멤버
System.Resources 네임스페이스
UltimateResourceFallbackLocation
FallbackLocation

기타 리소스

리소스 패키징 및 배포