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使用して使用されます。このクラスには、実行時にカルチャ固有のリソースへのアクセスを提供するメソッドが含まれています。 リソースの作成と使用の詳細については、「 デスクトップ アプリのリソース」を参照してください。
厳密に型指定されたリソースのサポートは、静的な読み取り専用 (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) |
指定された入力文字列とコード プロバイダーに基づいて、有効なリソース文字列を生成します。 |
適用対象
.NET