StronglyTypedResourceBuilder クラス

定義

厳密に型指定されたリソースのサポートを提供します。 このクラスは継承できません。

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 メソッドを呼び出す代わりに、リソースを使用する別の方法が提供されます。

厳密に型指定されたリソース サポートの基本的な機能は、StronglyTypedResourceBuilder クラス (およびResgen.exe (リソース ファイル ジェネレーター) の /str コマンドライン オプション) によって提供されます。 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)

指定した入力文字列とコード プロバイダーに基づいて、有効なリソース文字列を生成します。

適用対象