ResourceManager.GetString 메서드

정의

지정된 문화권 또는 현재 UI 문화권에 대해 지정된 문자열 리소스를 반환합니다.

오버로드

Name Description
GetString(String)

지정된 문자열 리소스의 값을 반환합니다.

GetString(String, CultureInfo)

지정된 문화권에 대해 지역화된 문자열 리소스의 값을 반환합니다.

GetString(String)

Source:
ResourceManager.cs
Source:
ResourceManager.cs
Source:
ResourceManager.cs
Source:
ResourceManager.cs
Source:
ResourceManager.cs

지정된 문자열 리소스의 값을 반환합니다.

public:
 System::String ^ GetString(System::String ^ name);
public:
 virtual System::String ^ GetString(System::String ^ name);
public string GetString(string name);
public virtual string? GetString(string name);
public virtual string GetString(string name);
member this.GetString : string -> string
abstract member GetString : string -> string
override this.GetString : string -> string
Public Function GetString (name As String) As String
Public Overridable Function GetString (name As String) As String

매개 변수

name
String

검색할 리소스의 이름입니다.

반품

호출자의 현재 UI 문화권에 대해 지역화된 리소스의 값이거나 null 리소스 집합에서 찾을 수 없는 경우 name 입니다.

예외

매개 변수는 name .입니다 null.

지정된 리소스의 값이 문자열이 아닙니다.

사용 가능한 리소스 집합을 찾을 수 없으며 기본 문화권에 대한 리소스가 없습니다. 이 예외를 처리하는 방법에 대한 자세한 내용은 클래스 항목의 "MissingManifestResourceException 및 MissingSatelliteAssemblyException 예외 처리" 섹션을 ResourceManager 참조하세요.

기본 문화권의 리소스는 찾을 수 없는 위성 어셈블리에 있습니다. 이 예외를 처리하는 방법에 대한 자세한 내용은 클래스 항목의 "MissingManifestResourceException 및 MissingSatelliteAssemblyException 예외 처리" 섹션을 ResourceManager 참조하세요.

설명

IgnoreCase 속성은 리소스 이름과 name 비교가 대/소문자를 구분하지 않는지(기본값) 또는 대/소문자를 구분하는지를 결정합니다.

메모

GetString 메서드는 나열된 것보다 더 많은 예외를 throw할 수 있습니다. 이 문제가 발생할 수 있는 한 가지 이유는 이 메서드가 호출하는 메서드가 예외를 발생시키는 경우입니다. 예를 들어 위성 어셈블리를 배포하거나 설치하는 동안 오류가 발생하면 FileLoadException 예외가 throw되거나, 형식이 역직렬화될 때 사용자 정의 형식이 사용자 정의 예외를 throw하는 경우 SerializationException 예외가 throw될 수 있습니다.

GetString(String) 메서드

데스크톱 앱

데스크톱 앱에서 반환되는 리소스는 CultureInfo.CurrentUICulture 속성에 정의된 대로 현재 스레드의 UI 문화권에 대해 지역화됩니다. 리소스가 해당 문화권에 대해 지역화되지 않은 경우 리소스 관리자는 패키징 및 리소스 배포 문서의 "리소스 대체 프로세스" 섹션에 설명된 단계에 따라 리소스를 검색합니다. 사용할 수 있는 지역화된 리소스 집합이 없으면 리소스 관리자는 기본 문화권의 리소스를 다시 사용합니다. 리소스 관리자가 기본 문화권의 리소스 집합을 로드할 수 없는 경우 메서드는 MissingManifestResourceException 예외를 throw하거나, 리소스 집합이 위성 어셈블리에 상주해야 하는 경우 MissingSatelliteAssemblyException 예외입니다. 리소스 관리자가 적절한 리소스 집합을 로드할 수 있지만 name리소스를 찾을 수 없는 경우 메서드는 null반환합니다.

Example

다음 예제에서는 GetString 메서드를 사용하여 문화권별 리소스를 검색합니다. 영어(en), 프랑스어(프랑스) (fr-FR) 및 러시아어(러시아)(ru-RU) 문화권에 대한 .txt 파일에서 컴파일된 리소스로 구성됩니다. 이 예제에서는 현재 문화권과 현재 UI 문화권을 영어(미국), 프랑스어(프랑스), 러시아어(러시아) 및 스웨덴어(스웨덴)로 변경합니다. 그런 다음 GetString 메서드를 호출하여 지역화된 문자열을 검색합니다. 이 문자열은 현재 날짜 및 월과 함께 표시됩니다. 현재 UI 문화권이 스웨덴어(스웨덴)인 경우를 제외하고 출력에 적절한 지역화된 문자열이 표시됩니다. 스웨덴어 언어 리소스를 사용할 수 없으므로 앱은 대신 영어인 기본 문화권의 리소스를 사용합니다. 이 예제에서는 다음 표에 나열된 텍스트 기반 리소스 파일이 필요합니다. 각각에는 DateStart이라는 단일 문자열 리소스가 있습니다.

Culture 파일 이름 리소스 이름 리소스 값
en-US DateStrings.txt DateStart 현재는 다음과 입니다.
fr-FR DateStrings.fr-FR.txt DateStart 오늘은
ru-RU DateStrings.ru-RU.txt DateStart Сегодня

다음 일괄 처리 파일을 사용하여 C# 예제를 컴파일할 수 있습니다. Visual Basic의 경우 cscvbc변경하고 소스 코드 파일의 확장명은 .cs.vb변경합니다.

resgen DateStrings.txt
csc showdate.cs /resource:DateStrings.resources

md fr-FR
resgen DateStrings.fr-FR.txt
al /out:fr-FR\Showdate.resources.dll /culture:fr-FR /embed:DateStrings.fr-FR.resources

md ru-RU
resgen DateStrings.ru-RU.txt
al /out:ru-RU\Showdate.resources.dll /culture:ru-RU /embed:DateStrings.ru-RU.resources

다음은 예제의 소스 코드입니다(Visual Basic 버전에 대한 ShowDate.vb 또는 C# 버전의 ShowDate.cs).

using System;
using System.Globalization;
using System.Resources;
using System.Threading;

public class ShowTimeExample
{
   public static void Main()
   {
      string[] cultureNames = [ "en-US", "fr-FR", "ru-RU", "sv-SE" ];
      ResourceManager rm = new ResourceManager("DateStrings",
                                               typeof(Example).Assembly);

      foreach (var cultureName in cultureNames) {
         CultureInfo culture = CultureInfo.CreateSpecificCulture(cultureName);
         Thread.CurrentThread.CurrentCulture = culture;
         Thread.CurrentThread.CurrentUICulture = culture;

         Console.WriteLine($"Current UI Culture: {CultureInfo.CurrentUICulture.Name}");
         string dateString = rm.GetString("DateStart");
         Console.WriteLine($"{dateString} {DateTime.Now:M}.\n");
      }
   }
}

// The example displays output similar to the following:
//       Current UI Culture: en-US
//       Today is February 03.
//
//       Current UI Culture: fr-FR
//       Aujourd'hui, c'est le 3 février
//
//       Current UI Culture: ru-RU
//       Сегодня февраля 03.
//
//       Current UI Culture: sv-SE
//       Today is den 3 februari.
Imports System.Globalization
Imports System.Resources
Imports System.Threading

<Assembly:NeutralResourcesLanguage("en")>

Module Example
   Public Sub Main()
      Dim cultureNames() As String = { "en-US", "fr-FR", "ru-RU", "sv-SE" }
      Dim rm As New ResourceManager("DateStrings",
                                    GetType(Example).Assembly)
      
      For Each cultureName In cultureNames
         Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture(cultureName)
         Thread.CurrentThread.CurrentCulture = culture 
         Thread.CurrentThread.CurrentUICulture = culture

         Console.WriteLine("Current UI Culture: {0}", 
                           CultureInfo.CurrentUICulture.Name)
         Dim dateString As String = rm.GetString("DateStart")
         Console.WriteLine("{0} {1:M}.", dateString, Date.Now)                           
         Console.WriteLine()
      Next                                           
   End Sub
End Module
' The example displays output similar to the following:
'       Current UI Culture: en-US
'       Today is February 03.
'       
'       Current UI Culture: fr-FR
'       Aujourd'hui, c'est le 3 février
'       
'       Current UI Culture: ru-RU
'       Сегодня февраля 03.
'       
'       Current UI Culture: sv-SE
'       Today is den 3 februari.

GetString(String, CultureInfo) 메서드

데스크톱 앱

데스크톱 앱에서 culturenull경우 GetString(String, CultureInfo) 메서드는 CultureInfo.CurrentUICulture 속성에서 가져온 현재 UI 문화권을 사용합니다.

반환되는 리소스는 culture 매개 변수로 지정된 문화권에 대해 지역화됩니다. 리소스가 culture대해 지역화되지 않은 경우 리소스 관리자는 패키징 및 리소스 배포 항목의 "리소스 대체 프로세스" 섹션에 설명된 단계에 따라 리소스를 검색합니다. 사용할 수 있는 리소스 집합을 찾을 수 없는 경우 리소스 관리자는 기본 문화권의 리소스로 돌아갑니다. 리소스 관리자가 기본 문화권의 리소스 집합을 로드할 수 없는 경우 메서드는 MissingManifestResourceException 예외를 throw하거나, 리소스 집합이 위성 어셈블리에 상주해야 하는 경우 MissingSatelliteAssemblyException 예외입니다. 리소스 관리자가 적절한 리소스 집합을 로드할 수 있지만 name리소스를 찾을 수 없는 경우 메서드는 null반환합니다.

Example

다음 예제에서는 GetString(String, CultureInfo) 메서드를 사용하여 문화권별 리소스를 검색합니다. 이 예제의 기본 문화권은 영어(en)이며 프랑스어(프랑스)(fr-FR) 및 러시아어(러시아)(ru-RU) 문화권에 대한 위성 어셈블리를 포함합니다. 이 예제에서는 GetString(String, CultureInfo)호출하기 전에 현재 문화권 및 현재 UI 문화권을 러시아어(러시아)로 변경합니다. 그런 다음 GetString 메서드와 DateTime.ToString(String, IFormatProvider) 메서드를 호출하고 프랑스(프랑스) 및 스웨덴(스웨덴) 문화권을 나타내는 CultureInfo 개체를 각 메서드에 전달합니다. 출력에서는 GetString 메서드가 프랑스어 리소스를 검색할 수 있기 때문에 해당 월과 일 및 그 앞에 오는 문자열이 프랑스어로 표시됩니다. 그러나 스웨덴어(스웨덴) 문화권이 사용되는 경우 월과 날짜는 스웨덴어로 표시되지만 앞에 오는 문자열은 영어로 표시됩니다. 이는 리소스 관리자가 지역화된 스웨덴어 리소스를 찾을 수 없기 때문에 기본 영어 문화권에 대한 리소스를 대신 반환하기 때문입니다.

이 예제에서는 다음 표에 나열된 텍스트 기반 리소스 파일이 필요합니다. 각각에는 DateStart이라는 단일 문자열 리소스가 있습니다.

Culture 파일 이름 리소스 이름 리소스 값
en-US DateStrings.txt DateStart 현재는 다음과 입니다.
fr-FR DateStrings.fr-FR.txt DateStart 오늘은
ru-RU DateStrings.ru-RU.txt DateStart Сегодня

다음 일괄 처리 파일을 사용하여 Visual Basic 예제를 컴파일할 수 있습니다. C#으로 컴파일하려면 vbccsc변경하고 소스 코드 파일의 확장을 .vb.cs변경합니다.

resgen DateStrings.txt
vbc showdate.vb /resource:DateStrings.resources

md fr-FR
resgen DateStrings.fr-FR.txt
al /out:fr-FR\Showdate.resources.dll /culture:fr-FR /embed:DateStrings.fr-FR.resources

md ru-RU
resgen DateStrings.ru-RU.txt
al /out:ru-RU\Showdate.resources.dll /culture:ru-RU /embed:DateStrings.ru-RU.resources

다음은 예제의 소스 코드입니다(Visual Basic 버전에 대한 ShowDate.vb 또는 C# 버전의 ShowDate.cs).

using System;
using System.Globalization;
using System.Resources;
using System.Threading;

public class Example2
{
    public static void Main()
    {
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ru-RU");
        Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU");

        string[] cultureNames = [ "fr-FR", "sv-SE" ];
        ResourceManager rm = new ResourceManager("DateStrings",
                                                 typeof(Example).Assembly);

        foreach (var cultureName in cultureNames)
        {
            CultureInfo culture = CultureInfo.CreateSpecificCulture(cultureName);
            string dateString = rm.GetString("DateStart", culture);
            Console.WriteLine($"{culture.DisplayName}: {dateString} {DateTime.Now.ToString("M", culture)}.");
            Console.WriteLine();
        }
    }
}

// The example displays output similar to the following:
//       French (France): Aujourd'hui, c'est le 7 février.
//
//       Swedish (Sweden): Today is den 7 februari.
Imports System.Globalization
Imports System.Resources
Imports System.Threading

Module Example2
    Public Sub Main()
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ru-RU")
        Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU")

        Dim cultureNames() As String = {"fr-FR", "sv-SE"}
        Dim rm As New ResourceManager("DateStrings",
                                    GetType(Example).Assembly)

        For Each cultureName In cultureNames
            Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture(cultureName)
            Dim dateString As String = rm.GetString("DateStart", culture)
            Console.WriteLine("{0}: {1} {2}.", culture.DisplayName, dateString,
                                            Date.Now.ToString("M", culture))
            Console.WriteLine()
        Next
    End Sub
End Module
' The example displays output similar to the following:
'       French (France): Aujourd'hui, c'est le 7 février.
'       
'       Swedish (Sweden): Today is den 7 februari.

스레드 보안

GetString(String) 메서드는 스레드로부터 안전합니다.

추가 정보

적용 대상

GetString(String, CultureInfo)

Source:
ResourceManager.cs
Source:
ResourceManager.cs
Source:
ResourceManager.cs
Source:
ResourceManager.cs
Source:
ResourceManager.cs

지정된 문화권에 대해 지역화된 문자열 리소스의 값을 반환합니다.

public:
 virtual System::String ^ GetString(System::String ^ name, System::Globalization::CultureInfo ^ culture);
public virtual string GetString(string name, System.Globalization.CultureInfo culture);
public virtual string? GetString(string name, System.Globalization.CultureInfo? culture);
abstract member GetString : string * System.Globalization.CultureInfo -> string
override this.GetString : string * System.Globalization.CultureInfo -> string
Public Overridable Function GetString (name As String, culture As CultureInfo) As String

매개 변수

name
String

검색할 리소스의 이름입니다.

culture
CultureInfo

리소스가 지역화된 문화권을 나타내는 개체입니다.

반품

지정된 문화권에 대해 지역화된 리소스의 값이거나 null 리소스 집합에서 찾을 수 없는 경우 name 입니다.

예외

매개 변수는 name .입니다 null.

지정된 리소스의 값이 문자열이 아닙니다.

사용 가능한 리소스 집합을 찾을 수 없으며 기본 문화권에 대한 리소스가 없습니다. 이 예외를 처리하는 방법에 대한 자세한 내용은 클래스 항목의 "MissingManifestResourceException 및 MissingSatelliteAssemblyException 예외 처리" 섹션을 ResourceManager 참조하세요.

기본 문화권의 리소스는 찾을 수 없는 위성 어셈블리에 있습니다. 이 예외를 처리하는 방법에 대한 자세한 내용은 클래스 항목의 "MissingManifestResourceException 및 MissingSatelliteAssemblyException 예외 처리" 섹션을 ResourceManager 참조하세요.

설명

IgnoreCase 속성은 리소스 이름과 name 비교가 대/소문자를 구분하지 않는지(기본값) 또는 대/소문자를 구분하는지를 결정합니다.

메모

GetString 메서드는 나열된 것보다 더 많은 예외를 throw할 수 있습니다. 이 문제가 발생할 수 있는 한 가지 이유는 이 메서드가 호출하는 메서드가 예외를 발생시키는 경우입니다. 예를 들어 위성 어셈블리를 배포하거나 설치하는 동안 오류가 발생하면 FileLoadException 예외가 throw되거나, 형식이 역직렬화될 때 사용자 정의 형식이 사용자 정의 예외를 throw하는 경우 SerializationException 예외가 throw될 수 있습니다.

GetString(String) 메서드

데스크톱 앱

데스크톱 앱에서 반환되는 리소스는 CultureInfo.CurrentUICulture 속성에 정의된 대로 현재 스레드의 UI 문화권에 대해 지역화됩니다. 리소스가 해당 문화권에 대해 지역화되지 않은 경우 리소스 관리자는 패키징 및 리소스 배포 문서의 "리소스 대체 프로세스" 섹션에 설명된 단계에 따라 리소스를 검색합니다. 사용할 수 있는 지역화된 리소스 집합이 없으면 리소스 관리자는 기본 문화권의 리소스를 다시 사용합니다. 리소스 관리자가 기본 문화권의 리소스 집합을 로드할 수 없는 경우 메서드는 MissingManifestResourceException 예외를 throw하거나, 리소스 집합이 위성 어셈블리에 상주해야 하는 경우 MissingSatelliteAssemblyException 예외입니다. 리소스 관리자가 적절한 리소스 집합을 로드할 수 있지만 name리소스를 찾을 수 없는 경우 메서드는 null반환합니다.

Example

다음 예제에서는 GetString 메서드를 사용하여 문화권별 리소스를 검색합니다. 영어(en), 프랑스어(프랑스) (fr-FR) 및 러시아어(러시아)(ru-RU) 문화권에 대한 .txt 파일에서 컴파일된 리소스로 구성됩니다. 이 예제에서는 현재 문화권과 현재 UI 문화권을 영어(미국), 프랑스어(프랑스), 러시아어(러시아) 및 스웨덴어(스웨덴)로 변경합니다. 그런 다음 GetString 메서드를 호출하여 지역화된 문자열을 검색합니다. 이 문자열은 현재 날짜 및 월과 함께 표시됩니다. 현재 UI 문화권이 스웨덴어(스웨덴)인 경우를 제외하고 출력에 적절한 지역화된 문자열이 표시됩니다. 스웨덴어 언어 리소스를 사용할 수 없으므로 앱은 대신 영어인 기본 문화권의 리소스를 사용합니다. 이 예제에서는 다음 표에 나열된 텍스트 기반 리소스 파일이 필요합니다. 각각에는 DateStart이라는 단일 문자열 리소스가 있습니다.

Culture 파일 이름 리소스 이름 리소스 값
en-US DateStrings.txt DateStart 현재는 다음과 입니다.
fr-FR DateStrings.fr-FR.txt DateStart 오늘은
ru-RU DateStrings.ru-RU.txt DateStart Сегодня

다음 일괄 처리 파일을 사용하여 C# 예제를 컴파일할 수 있습니다. Visual Basic의 경우 cscvbc변경하고 소스 코드 파일의 확장명은 .cs.vb변경합니다.

resgen DateStrings.txt
csc showdate.cs /resource:DateStrings.resources

md fr-FR
resgen DateStrings.fr-FR.txt
al /out:fr-FR\Showdate.resources.dll /culture:fr-FR /embed:DateStrings.fr-FR.resources

md ru-RU
resgen DateStrings.ru-RU.txt
al /out:ru-RU\Showdate.resources.dll /culture:ru-RU /embed:DateStrings.ru-RU.resources

다음은 예제의 소스 코드입니다(Visual Basic 버전에 대한 ShowDate.vb 또는 C# 버전의 ShowDate.cs).

using System;
using System.Globalization;
using System.Resources;
using System.Threading;

public class ShowTimeExample
{
   public static void Main()
   {
      string[] cultureNames = [ "en-US", "fr-FR", "ru-RU", "sv-SE" ];
      ResourceManager rm = new ResourceManager("DateStrings",
                                               typeof(Example).Assembly);

      foreach (var cultureName in cultureNames) {
         CultureInfo culture = CultureInfo.CreateSpecificCulture(cultureName);
         Thread.CurrentThread.CurrentCulture = culture;
         Thread.CurrentThread.CurrentUICulture = culture;

         Console.WriteLine($"Current UI Culture: {CultureInfo.CurrentUICulture.Name}");
         string dateString = rm.GetString("DateStart");
         Console.WriteLine($"{dateString} {DateTime.Now:M}.\n");
      }
   }
}

// The example displays output similar to the following:
//       Current UI Culture: en-US
//       Today is February 03.
//
//       Current UI Culture: fr-FR
//       Aujourd'hui, c'est le 3 février
//
//       Current UI Culture: ru-RU
//       Сегодня февраля 03.
//
//       Current UI Culture: sv-SE
//       Today is den 3 februari.
Imports System.Globalization
Imports System.Resources
Imports System.Threading

<Assembly:NeutralResourcesLanguage("en")>

Module Example
   Public Sub Main()
      Dim cultureNames() As String = { "en-US", "fr-FR", "ru-RU", "sv-SE" }
      Dim rm As New ResourceManager("DateStrings",
                                    GetType(Example).Assembly)
      
      For Each cultureName In cultureNames
         Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture(cultureName)
         Thread.CurrentThread.CurrentCulture = culture 
         Thread.CurrentThread.CurrentUICulture = culture

         Console.WriteLine("Current UI Culture: {0}", 
                           CultureInfo.CurrentUICulture.Name)
         Dim dateString As String = rm.GetString("DateStart")
         Console.WriteLine("{0} {1:M}.", dateString, Date.Now)                           
         Console.WriteLine()
      Next                                           
   End Sub
End Module
' The example displays output similar to the following:
'       Current UI Culture: en-US
'       Today is February 03.
'       
'       Current UI Culture: fr-FR
'       Aujourd'hui, c'est le 3 février
'       
'       Current UI Culture: ru-RU
'       Сегодня февраля 03.
'       
'       Current UI Culture: sv-SE
'       Today is den 3 februari.

GetString(String, CultureInfo) 메서드

데스크톱 앱

데스크톱 앱에서 culturenull경우 GetString(String, CultureInfo) 메서드는 CultureInfo.CurrentUICulture 속성에서 가져온 현재 UI 문화권을 사용합니다.

반환되는 리소스는 culture 매개 변수로 지정된 문화권에 대해 지역화됩니다. 리소스가 culture대해 지역화되지 않은 경우 리소스 관리자는 패키징 및 리소스 배포 항목의 "리소스 대체 프로세스" 섹션에 설명된 단계에 따라 리소스를 검색합니다. 사용할 수 있는 리소스 집합을 찾을 수 없는 경우 리소스 관리자는 기본 문화권의 리소스로 돌아갑니다. 리소스 관리자가 기본 문화권의 리소스 집합을 로드할 수 없는 경우 메서드는 MissingManifestResourceException 예외를 throw하거나, 리소스 집합이 위성 어셈블리에 상주해야 하는 경우 MissingSatelliteAssemblyException 예외입니다. 리소스 관리자가 적절한 리소스 집합을 로드할 수 있지만 name리소스를 찾을 수 없는 경우 메서드는 null반환합니다.

Example

다음 예제에서는 GetString(String, CultureInfo) 메서드를 사용하여 문화권별 리소스를 검색합니다. 이 예제의 기본 문화권은 영어(en)이며 프랑스어(프랑스)(fr-FR) 및 러시아어(러시아)(ru-RU) 문화권에 대한 위성 어셈블리를 포함합니다. 이 예제에서는 GetString(String, CultureInfo)호출하기 전에 현재 문화권 및 현재 UI 문화권을 러시아어(러시아)로 변경합니다. 그런 다음 GetString 메서드와 DateTime.ToString(String, IFormatProvider) 메서드를 호출하고 프랑스(프랑스) 및 스웨덴(스웨덴) 문화권을 나타내는 CultureInfo 개체를 각 메서드에 전달합니다. 출력에서는 GetString 메서드가 프랑스어 리소스를 검색할 수 있기 때문에 해당 월과 일 및 그 앞에 오는 문자열이 프랑스어로 표시됩니다. 그러나 스웨덴어(스웨덴) 문화권이 사용되는 경우 월과 날짜는 스웨덴어로 표시되지만 앞에 오는 문자열은 영어로 표시됩니다. 이는 리소스 관리자가 지역화된 스웨덴어 리소스를 찾을 수 없기 때문에 기본 영어 문화권에 대한 리소스를 대신 반환하기 때문입니다.

이 예제에서는 다음 표에 나열된 텍스트 기반 리소스 파일이 필요합니다. 각각에는 DateStart이라는 단일 문자열 리소스가 있습니다.

Culture 파일 이름 리소스 이름 리소스 값
en-US DateStrings.txt DateStart 현재는 다음과 입니다.
fr-FR DateStrings.fr-FR.txt DateStart 오늘은
ru-RU DateStrings.ru-RU.txt DateStart Сегодня

다음 일괄 처리 파일을 사용하여 Visual Basic 예제를 컴파일할 수 있습니다. C#으로 컴파일하려면 vbccsc변경하고 소스 코드 파일의 확장을 .vb.cs변경합니다.

resgen DateStrings.txt
vbc showdate.vb /resource:DateStrings.resources

md fr-FR
resgen DateStrings.fr-FR.txt
al /out:fr-FR\Showdate.resources.dll /culture:fr-FR /embed:DateStrings.fr-FR.resources

md ru-RU
resgen DateStrings.ru-RU.txt
al /out:ru-RU\Showdate.resources.dll /culture:ru-RU /embed:DateStrings.ru-RU.resources

다음은 예제의 소스 코드입니다(Visual Basic 버전에 대한 ShowDate.vb 또는 C# 버전의 ShowDate.cs).

using System;
using System.Globalization;
using System.Resources;
using System.Threading;

public class Example2
{
    public static void Main()
    {
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ru-RU");
        Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU");

        string[] cultureNames = [ "fr-FR", "sv-SE" ];
        ResourceManager rm = new ResourceManager("DateStrings",
                                                 typeof(Example).Assembly);

        foreach (var cultureName in cultureNames)
        {
            CultureInfo culture = CultureInfo.CreateSpecificCulture(cultureName);
            string dateString = rm.GetString("DateStart", culture);
            Console.WriteLine($"{culture.DisplayName}: {dateString} {DateTime.Now.ToString("M", culture)}.");
            Console.WriteLine();
        }
    }
}

// The example displays output similar to the following:
//       French (France): Aujourd'hui, c'est le 7 février.
//
//       Swedish (Sweden): Today is den 7 februari.
Imports System.Globalization
Imports System.Resources
Imports System.Threading

Module Example2
    Public Sub Main()
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ru-RU")
        Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU")

        Dim cultureNames() As String = {"fr-FR", "sv-SE"}
        Dim rm As New ResourceManager("DateStrings",
                                    GetType(Example).Assembly)

        For Each cultureName In cultureNames
            Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture(cultureName)
            Dim dateString As String = rm.GetString("DateStart", culture)
            Console.WriteLine("{0}: {1} {2}.", culture.DisplayName, dateString,
                                            Date.Now.ToString("M", culture))
            Console.WriteLine()
        Next
    End Sub
End Module
' The example displays output similar to the following:
'       French (France): Aujourd'hui, c'est le 7 février.
'       
'       Swedish (Sweden): Today is den 7 februari.

스레드 보안

GetString(String, CultureInfo) 메서드는 스레드로부터 안전합니다.

추가 정보

적용 대상