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 des 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 (selon le 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 d’une application. La création et la consommation de ces ressources facilitent le développement d’applications localisables. Dans .NET Framework, les ressources sont généralement consommées à l’aide de la classe ResourceManager, qui contient des méthodes qui fournissent l’accès aux ressources spécifiques à la culture au moment de l’exécution. Pour plus d’informations sur la création et la consommation de ressources, consultez Ressources dans Applications de bureau.
La prise en charge des ressources fortement typées est une fonctionnalité au moment de la 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 permet de consommer des ressources au lieu d’appeler les méthodes et ResourceManager.GetString les ResourceManager.GetObject ressources.
La fonctionnalité de base pour la prise en charge des ressources fortement typées est fournie par la StronglyTypedResourceBuilder classe (ainsi que l’option /str de ligne de commande dans la 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
| Nom | Description |
|---|---|
| Create(IDictionary, String, String, CodeDomProvider, Boolean, String[]) |
Génère un fichier de classe qui contient 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 qui contient 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 des propriétés fortement typées qui correspondent aux ressources du fichier .resx spécifié. |
| Create(String, String, String, String, CodeDomProvider, Boolean, String[]) |
Génère un fichier de classe qui contient des propriétés fortement typées qui correspondent aux ressources du fichier .resx spécifié. |
| VerifyResourceName(String, CodeDomProvider) |
Génère une chaîne de ressource valide en fonction de la chaîne d’entrée et du fournisseur de code spécifiés. |