Share via


StronglyTypedResourceBuilder 클래스

정의

강력한 형식의 리소스를 지원합니다. 이 클래스는 상속될 수 없습니다.

public ref class StronglyTypedResourceBuilder abstract sealed
public static class StronglyTypedResourceBuilder
type StronglyTypedResourceBuilder = class
Public Class StronglyTypedResourceBuilder
상속
StronglyTypedResourceBuilder

예제

다음 예제에서는 라는 클래스를 생성 DemoResources (예제의 소스 코드)에 따라 C# 또는 Visual Basic에서 작성 되었습니다. 이 클래스에는 DemoApp 네임 스페이스 있고 애플리케이션의 이름과 로고 비트맵을 반환 하는 속성입니다. 예제에서는 호출을 CreateResourceFile 필요한.resw 파일을 만드는 방법을 Logo.bmp 라는 비트맵 파일의 예에서는 현재 디렉터리에서 찾을 수 있음이 하며 합니다. 코드 예제에서는 demo.resx 라는 다음 리소스 파일을 사용 합니다.

using Microsoft.CSharp;
using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Drawing;
using System.IO;
using System.Resources;
using System.Resources.Tools;

public class Example
{
   public static void Main()
   {
      CreateResXFile();
      
      StreamWriter sw = new StreamWriter(@".\DemoResources.cs");
      string[] errors = null;
      CSharpCodeProvider provider = new CSharpCodeProvider();
      CodeCompileUnit code = StronglyTypedResourceBuilder.Create("Demo.resx", "DemoResources", 
                                                                 "DemoApp", provider, 
                                                                 false, out errors);    
      if (errors.Length > 0)
         foreach (var error in errors)
            Console.WriteLine(error); 

      provider.GenerateCodeFromCompileUnit(code, sw, new CodeGeneratorOptions());                                         
      sw.Close();
   }

   private static void CreateResXFile()
   {
      Bitmap logo = new Bitmap(@".\Logo.bmp");

      ResXResourceWriter rw = new ResXResourceWriter(@".\Demo.resx");
      rw.AddResource("Logo", logo); 
      rw.AddResource("AppTitle", "Demo Application");
      rw.Generate();
      rw.Close();
   }
}
Imports System.CodeDom
Imports System.CodeDom.Compiler
Imports System.Drawing
Imports System.IO
Imports System.Resources
Imports System.Resources.Tools

Module Example
   Public Sub Main()
      CreateResXFile()
      
      Dim sw As New StreamWriter(".\DemoResources.vb")
      Dim errors() As String = Nothing
      Dim provider As New VBCodeProvider()
      Dim code As CodeCompileUnit = StronglyTypedResourceBuilder.Create("Demo.resx", "DemoResources", 
                                                                        "DemoApp", provider, 
                                                                        false, errors)    
      If errors.Length > 0 Then
         For Each [error] In errors
            Console.WriteLine([error]) 
         Next
      End If
      provider.GenerateCodeFromCompileUnit(code, sw, New CodeGeneratorOptions())                                         
      sw.Close()
   End Sub
   
   Private Sub CreateResXFile()
      Dim logo As New Bitmap(".\Logo.bmp")

      Dim rw As New ResXResourceWriter(".\Demo.resx")
      rw.AddResource("Logo", logo) 
      rw.AddResource("AppTitle", "Demo Application")
      rw.Generate()
      rw.Close()
   End Sub
End Module

다음 애플리케이션 코드 클래스를 다음과 같이 사용할 수 있습니다.

this.Text = DemoApp.DemoResources.AppTitle;
System.Drawing.Bitmap bmp = DemoApp.DemoResources.Logo;
Me.Text = DemoApp.DemoResources.AppTitle
Dim bmp As System.Drawing.Bitmap = DemoApp.DemoResources.Logo

설명

일반적으로 리소스는 콘텐츠 애플리케이션 내에서 코드를 구분합니다. 만들기 및 이러한 리소스를 소비 쉽게 지역화할 수 있는 애플리케이션을 개발 합니다. .NET framework에서 일반적으로에서 리소스가 소비 되므로 사용 하 여 ResourceManager 런타임 시 문화권별 리소스에 대 한 액세스를 제공 하는 메서드를 포함 하는 클래스입니다. 만들기 및 리소스를 소비 하는 방법에 대 한 자세한 내용은 참조 하세요. 데스크톱 앱의 리소스합니다.

강력한 형식의 리소스 지원이 읽기 전용 정적 집합을 포함 하는 클래스를 만들어 리소스에 대 한 액세스를 캡슐화 하는 컴파일 시간 기능 (get) 속성입니다. 호출 하는 대신 리소스를 소비 하는 대체 방법을 제공 합니다 ResourceManager.GetStringResourceManager.GetObject 메서드.

강력한 형식의 리소스 지원 위한 기본 기능을 제공 합니다 StronglyTypedResourceBuilder 클래스 (뿐만 /str 명령줄 옵션을 Resgen.exe (리소스 파일 생성기)). 출력을 Create 메서드는 입력된 매개 변수에서 참조 되는 리소스와 일치 하는 강력한 형식의 속성을 포함 하는 클래스입니다. 이 클래스는 처리 된 파일에서 사용할 수 있는 리소스에 대 한 읽기 전용 액세스를 제공 합니다.

메서드

Create(IDictionary, String, String, CodeDomProvider, Boolean, String[])

지정된 컬렉션에 참조된 리소스와 일치하는 강력한 형식의 속성이 포함된 클래스 파일을 생성합니다.

Create(IDictionary, String, String, String, CodeDomProvider, Boolean, String[])

지정된 컬렉션에 참조된 리소스와 일치하는 강력한 형식의 속성이 포함된 클래스 파일을 생성합니다.

Create(String, String, String, CodeDomProvider, Boolean, String[])

지정된 .resx 파일의 리소스와 일치하는 강력한 형식의 속성이 들어 있는 클래스 파일을 생성합니다.

Create(String, String, String, String, CodeDomProvider, Boolean, String[])

지정된 .resx 파일의 리소스와 일치하는 강력한 형식의 속성이 들어 있는 클래스 파일을 생성합니다.

VerifyResourceName(String, CodeDomProvider)

지정된 입력 문자열 및 코드 공급자를 기반으로 유효한 리소스 문자열을 생성합니다.

적용 대상