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 メソッドを呼び出す代わりに、リソースを使用する別の方法が提供されます。
厳密に型指定されたリソース サポートの基本的な機能は、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) |
指定した入力文字列とコード プロバイダーに基づいて、有効なリソース文字列を生成します。 |