次の方法で共有


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使用して使用されます。このクラスには、実行時にカルチャ固有のリソースへのアクセスを提供するメソッドが含まれています。 リソースの作成と使用の詳細については、「 デスクトップ アプリのリソース」を参照してください。

厳密に型指定されたリソースのサポートは、静的な読み取り専用 (get) プロパティのセットを含むクラスを作成することで、リソースへのアクセスをカプセル化するコンパイル時機能です。 これにより、 メソッドと ResourceManager.GetObject メソッドを呼び出す代わりに、リソースをResourceManager.GetString使用する別の方法が提供されます。

厳密に型指定されたリソース サポートの基本的な機能は、 クラスによって 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)

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

適用対象