StronglyTypedResourceBuilder Classe

Définition

Fournit la prise en charge pour les ressources fortement typées. Cette classe ne peut pas être héritée.

public ref class StronglyTypedResourceBuilder abstract sealed
public static class StronglyTypedResourceBuilder
type StronglyTypedResourceBuilder = class
Public Class StronglyTypedResourceBuilder
Héritage
StronglyTypedResourceBuilder

Exemples

L’exemple suivant génère une classe nommée DemoResources écrite en C# ou Visual Basic (en fonction du code source de l’exemple). Cette classe se trouve dans l’espace DemoApp de noms et possède des propriétés qui retournent la bitmap d’un logo et le nom d’une application. L’exemple appelle une CreateResourceFile méthode pour créer le fichier .resw nécessaire et nécessite qu’un fichier bitmap nommé Logo.bmp se trouve dans le répertoire actif de l’exemple. L’exemple de code utilise le fichier de ressources suivant, nommé 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

Votre code d’application peut ensuite utiliser la classe comme suit :

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

Remarques

En règle générale, les ressources séparent le code du contenu au sein d’une application. La création et l’utilisation de ces ressources facilitent le développement d’applications localisables. Dans le .NET Framework, les ressources sont généralement consommées à l’aide de la ResourceManager classe , qui contient des méthodes qui permettent d’accéder à des ressources spécifiques à la culture au moment de l’exécution. Pour plus d’informations sur la création et l’utilisation de ressources, consultez Ressources dans les applications de bureau.

La prise en charge des ressources fortement typées est une fonctionnalité de compilation qui encapsule l’accès aux ressources en créant des classes qui contiennent un ensemble de propriétés statiques en lecture seule (get). Cela offre une autre façon de consommer des ressources au lieu d’appeler les ResourceManager.GetString méthodes et ResourceManager.GetObject .

La fonctionnalité de base pour la prise en charge des ressources fortement typées est fournie par la StronglyTypedResourceBuilder classe (ainsi que par l’option /str de ligne de commande dans le Resgen.exe (Générateur de fichiers de ressources)). La sortie de la Create méthode est une classe qui contient des propriétés fortement typées qui correspondent aux ressources référencées dans le paramètre d’entrée. Cette classe fournit un accès en lecture seule aux ressources disponibles dans le fichier traité.

Méthodes

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

Génère un fichier de classe contenant des propriétés fortement typées qui correspondent aux ressources référencées dans la collection spécifiée.

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

Génère un fichier de classe contenant des propriétés fortement typées qui correspondent aux ressources référencées dans la collection spécifiée.

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

Génère un fichier de classe qui contient les propriétés fortement typées correspondant aux ressources contenues dans le fichier .resx spécifié.

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

Génère un fichier de classe qui contient les propriétés fortement typées correspondant aux ressources contenues dans le fichier .resx spécifié.

VerifyResourceName(String, CodeDomProvider)

Génère une chaîne de ressource valide selon la chaîne d'entrée et le fournisseur de code spécifiés.

S’applique à