다음을 통해 공유


연습: 위성 어셈블리에서 리소스 로드

업데이트: 2007년 11월

이 연습에서는 Windows Presentation Foundation(WPF) Designer for Visual Studio를 사용하여 위성 어셈블리에서 리소스 문자열을 로드하는 방법을 보여 줍니다. 이렇게 하면 WPF 응용 프로그램을 편리하게 지역화할 수 있습니다.

이 연습에서는 다음 작업을 수행합니다.

  • 프로젝트를 만듭니다.

  • 위성 어셈블리를 사용하도록 설정합니다.

  • 리소스 문자열을 만든 다음 이 문자열에 액세스합니다.

작업을 마치면 위성 어셈블리에서 문자열을 검색하는 간단한 응용 프로그램이 만들어집니다.

참고:

실제 설정이나 버전에 따라서 화면에 나타나는 대화 상자와 메뉴 명령이 도움말의 설명과 다를 수 있습니다. 설정을 변경하려면 도구 메뉴에서 설정 가져오기 및 내보내기를 선택합니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

사전 요구 사항

이 연습을 완료하려면 다음 구성 요소가 필요합니다.

  • Visual Studio 2008.

프로젝트 만들기

첫 번째 단계는 응용 프로그램의 프로젝트를 만드는 것입니다.

프로젝트를 만들려면

  1. Visual Basic 또는 Visual C#에서 ResourceTest라는 새 WPF 응용 프로그램 프로젝트를 만듭니다. 자세한 내용은 방법: 새 WPF 응용 프로그램 프로젝트 만들기를 참조하십시오.

    WPF Designer에 Window1.xaml이 열립니다.

  2. 도구 상자에서 Button 컨트롤을 디자인 화면으로 끌어 옵니다.

  3. 단추를 두 번 클릭하여 단추 컨트롤에 대한 Click 이벤트 처리기를 만듭니다.

위성 어셈블리 사용

AssemblyInfo 및 프로젝트 파일을 조금 변경하여 위성 어셈블리를 사용하도록 설정할 수 있습니다.

위성 어셈블리를 사용하려면

  1. 코드 편집기에서 AssemblyInfo.cs 또는 AssemblyInfo.vb를 엽니다. 솔루션 탐색기에서 모든 파일 표시를 클릭하면 파일을 볼 수 있습니다.

  2. 다음 줄의 주석 처리를 제거합니다.

    //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
    
    '<Assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>
    
  3. 솔루션을 저장합니다.

  4. 솔루션 탐색기에서 ResourceTest 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 프로젝트 언로드를 선택합니다.

    Visual Studio에서 ResourceTest 프로젝트가 언로드됩니다.

  5. 솔루션 탐색기에서 ResourceTest 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 ResourceTest.csproj 편집 또는 ResourceTest.vbproj 편집을 선택합니다.

    해당 프로젝트 파일이 XML 편집기에 열립니다.

  6. 다음 XML을 다른 <PropertyGroup> 요소와 동일한 수준에 삽입합니다.

    <PropertyGroup>
        <UICulture>en-US</UICulture>
    </PropertyGroup>
    
  7. 파일을 저장한 후 닫습니다.

  8. 솔루션 탐색기에서 ResourceTest 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 프로젝트 다시 로드를 선택합니다.

  9. 솔루션 탐색기에서 기본 RESX 파일의 이름을 Resources.resx에서 Resources.en-US.resx로 변경합니다.

  10. 속성 창에서 리소스 파일의 사용자 지정 도구 값을 지웁니다.

위성 어셈블리에서 리소스 문자열 만들기

이제 리소스 파일에서 문자열을 만듭니다.

위성 어셈블리에서 리소스 문자열을 만들려면

  1. 솔루션 탐색기에서 Resources.en-US.resx를 두 번 클릭합니다.

    Resources.en-US.resx가 리소스 디자이너에서 열립니다.

  2. 기본 문자열의 이름을 String1에서 helloWorldString으로 변경합니다.

  3. helloWorldString의 값을 Hello world로 변경합니다.

  4. 파일을 저장하고 리소스 편집기를 닫습니다.

리소스 문자열 액세스

ResourceManager 클래스를 사용하여 위성 어셈블리의 문자열에 액세스합니다.

리소스 문자열에 액세스하려면

  1. 코드 편집기에서 Window1.xaml.cs 또는 Window1.xaml.vb를 엽니다.

  2. .Window1.xaml.cs 또는 window1.xaml.vb의 맨 위에 다음 코드를 삽입합니다.

    using System.Reflection;
    using System.Resources;
    
    Imports System.Reflection
    Imports System.Resources
    
  3. button1_Click 이벤트 처리기에 다음 코드를 삽입합니다.

    ResourceManager rm = new ResourceManager(
        "ResourceTest.Properties.Resources", 
         Assembly.GetExecutingAssembly());
    MessageBox.Show(rm.GetString("helloWorldString"));
    
    Dim rm As New ResourceManager( _
        "ResourceTest.Resources", _
        Assembly.GetExecutingAssembly())
    MessageBox.Show(rm.GetString("helloWorldString"))
    
  4. F5 키를 눌러 응용 프로그램을 빌드 및 실행합니다.

  5. 단추를 클릭하여 위성 리소스에서 로드된 문자열 값을 확인합니다.

  6. Debug/en-US 폴더를 열어 ResourceTest.resources.dll이라는 이름의 위성 어셈블리를 확인합니다.

참고 항목

참조

ResourceManager

기타 리소스

WPF 디자이너를 사용한 배포 및 지역화

인코딩 및 지역화