Lire en anglais

Partager via


StronglyTypedResourceBuilder Classe

Définition

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

C#
public static 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 :

C#
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();
   }
}

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

C#
this.Text = DemoApp.DemoResources.AppTitle;
System.Drawing.Bitmap bmp = 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 à

Produit Versions
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 7, 8, 9