StronglyTypedResourceBuilder Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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. |