StronglyTypedResourceBuilder Klasse

Definition

Bietet Unterstützung für stark typierte 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 mit dem Namen DemoResources generiert, die in C# oder Visual Basic geschrieben ist (je nach 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. Das Beispiel ruft eine CreateResourceFile Methode zum Erstellen der erforderlichen RESW-Datei auf und erfordert, dass eine Bitmapdatei mit dem Namen Logo.bmp im aktuellen Verzeichnis des Beispiels gefunden werden muss. 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 verbraucht, die Methoden enthält, die den Zugriff auf kulturspezifische Ressourcen zur Laufzeit ermöglichen. Weitere Informationen zum Erstellen und Verbrauch von Ressourcen finden Sie unter "Ressourcen in Desktop-Apps".

Die unterstützung stark typierter Ressourcen ist ein Kompilierungszeitfeature, das den Zugriff auf Ressourcen kapselt, indem Klassen erstellt werden, die eine Reihe statischer, schreibgeschützter (get) Eigenschaften enthalten. Dies bietet eine alternative Möglichkeit, Ressourcen zu nutzen, anstatt die ResourceManager.GetString Methoden aufzurufen ResourceManager.GetObject .

Die grundlegenden Funktionen für stark typierte Ressourcenunterstützung werden von der StronglyTypedResourceBuilder Klasse (sowie die /str Befehlszeilenoption im Resgen.exe (Ressourcendateigenerator)) bereitgestellt. Die Ausgabe der Create Methode ist eine Klasse, die stark typierte 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 datei verarbeiteten Datei verfügbar sind.

Methoden

Name Beschreibung
Create(IDictionary, String, String, CodeDomProvider, Boolean, String[])

Generiert eine Klassendatei, die stark typisierte Eigenschaften enthält, die den Ressourcen entsprechen, auf die in der angegebenen Auflistung verwiesen wird.

Create(IDictionary, String, String, String, CodeDomProvider, Boolean, String[])

Generiert eine Klassendatei, die stark typisierte Eigenschaften enthält, die den Ressourcen entsprechen, auf die in der angegebenen Auflistung verwiesen wird.

Create(String, String, String, CodeDomProvider, Boolean, String[])

Generiert eine Klassendatei, die stark typisierte Eigenschaften enthält, die den Ressourcen in der angegebenen RESX-Datei entsprechen.

Create(String, String, String, String, CodeDomProvider, Boolean, String[])

Generiert eine Klassendatei, die stark typisierte Eigenschaften enthält, die den Ressourcen in der angegebenen RESX-Datei entsprechen.

VerifyResourceName(String, CodeDomProvider)

Generiert eine gültige Ressourcenzeichenfolge basierend auf der angegebenen Eingabezeichenfolge und dem Codeanbieter.

Gilt für: