StronglyTypedResourceBuilder 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
강력한 형식의 리소스에 대한 지원을 제공합니다. 이 클래스는 상속할 수 없습니다.
public ref class StronglyTypedResourceBuilder abstract sealed
public static class StronglyTypedResourceBuilder
type StronglyTypedResourceBuilder = class
Public Class StronglyTypedResourceBuilder
- 상속
-
StronglyTypedResourceBuilder
예제
다음 예제에서는 C# 또는 Visual Basic 작성된 DemoResources 클래스를 생성합니다(예제의 소스 코드에 따라 다름). 이 클래스는 네임스페이 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 클래스를 사용하여 사용됩니다. 리소스를 만들고 사용하는 방법에 대한 자세한 내용은 Desktop Apps의 리소스를 참조하세요.
강력한 형식의 리소스 지원은 정적 읽기 전용(get) 속성 집합을 포함하는 클래스를 만들어 리소스에 대한 액세스를 캡슐화하는 컴파일 시간 기능입니다. 이렇게 하면 리소스 및 ResourceManager.GetString 메서드를 호출 ResourceManager.GetObject 하는 대신 리소스를 사용하는 다른 방법이 제공됩니다.
강력한 형식의 리소스 지원을 위한 기본 기능은 클래스(Resgen.exe StronglyTypedResourceBuilder 명령줄 옵션 /str에서 제공됩니다. 메서드의 Create 출력은 입력 매개 변수에서 참조되는 리소스와 일치하는 강력한 형식의 속성을 포함하는 클래스입니다. 이 클래스는 처리된 파일에서 사용할 수 있는 리소스에 대한 읽기 전용 액세스를 제공합니다.
메서드
| Name | Description |
|---|---|
| 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) |
지정된 입력 문자열 및 코드 공급자를 기반으로 유효한 리소스 문자열을 생성합니다. |