StronglyTypedResourceBuilder Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bietet Unterstützung für stark typisierte Ressourcen. Diese Klasse kann nicht vererbt werden.
public ref class StronglyTypedResourceBuilder abstract sealed
public static class StronglyTypedResourceBuilder
type StronglyTypedResourceBuilder = class
Public Class StronglyTypedResourceBuilder
- Vererbung
-
StronglyTypedResourceBuilder
Beispiele
Im folgenden Beispiel wird eine Klasse namens DemoResources
generiert, die in C# oder Visual Basic geschrieben ist (abhängig vom Quellcode des Beispiels). Diese Klasse befindet sich im DemoApp
Namespace und verfügt über Eigenschaften, die die Bitmap eines Logos und den Namen einer Anwendung zurückgeben. Im Beispiel wird eine CreateResourceFile
Methode zum Erstellen der erforderlichen RESW-Datei aufgerufen, und es muss eine Bitmapdatei namens Logo.bmp im aktuellen Verzeichnis des Beispiels gefunden werden. Im Codebeispiel wird die folgende Ressourcendatei namens demo.resx verwendet:
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
Ihr Anwendungscode kann dann die -Klasse wie folgt verwenden:
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
Hinweise
In der Regel trennen Ressourcen Code von Inhalten innerhalb einer Anwendung. Das Erstellen und Verwenden dieser Ressourcen erleichtert die Entwicklung lokalisierbarer Anwendungen. Im .NET Framework werden Ressourcen in der Regel mithilfe der ResourceManager -Klasse genutzt, die Methoden enthält, die zur Laufzeit Zugriff auf kulturspezifische Ressourcen ermöglichen. Weitere Informationen zum Erstellen und Nutzen von Ressourcen finden Sie unter Ressourcen in Desktop-Apps.
Die Unterstützung von stark typisierten Ressourcen ist ein Feature zur Kompilierzeit, das den Zugriff auf Ressourcen kapselt, indem Klassen erstellt werden, die einen Satz statischer, schreibgeschützter Eigenschaften (get
) enthalten. Dies bietet eine alternative Möglichkeit, Ressourcen zu nutzen, anstatt die ResourceManager.GetString Methoden und ResourceManager.GetObject aufzurufen.
Die grundlegende Funktionalität für die Unterstützung stark typisierter Ressourcen wird von der StronglyTypedResourceBuilder -Klasse (sowie der /str
Befehlszeilenoption im Resgen.exe (Resource File Generator)) bereitgestellt. Die Ausgabe der Create -Methode ist eine Klasse, die stark typisierte Eigenschaften enthält, die den Ressourcen entsprechen, auf die im Eingabeparameter verwiesen wird. Diese Klasse bietet schreibgeschützten Zugriff auf die Ressourcen, die in der verarbeiteten Datei verfügbar sind.
Methoden
Create(IDictionary, String, String, CodeDomProvider, Boolean, String[]) |
Generiert eine Klassendatei mit stark typisierten Eigenschaften, die den Ressourcen entsprechen, auf die in der angegebenen Sammlung verwiesen wird. |
Create(IDictionary, String, String, String, CodeDomProvider, Boolean, String[]) |
Generiert eine Klassendatei mit stark typisierten Eigenschaften, die den Ressourcen entsprechen, auf die in der angegebenen Sammlung verwiesen wird. |
Create(String, String, String, CodeDomProvider, Boolean, String[]) |
Generiert eine Klassendatei mit stark typisierten Eigenschaften, die den Ressourcen in der angegebenen RESX-Datei entsprechen. |
Create(String, String, String, String, CodeDomProvider, Boolean, String[]) |
Generiert eine Klassendatei mit stark typisierten Eigenschaften, die den Ressourcen in der angegebenen RESX-Datei entsprechen. |
VerifyResourceName(String, CodeDomProvider) |
Generiert auf Grundlage der angegebenen Eingabezeichenfolge und des Codeanbieters eine gültige Ressourcenzeichenfolge. |