StronglyTypedResourceBuilder Classe

Definizione

Fornisce il supporto per risorse fortemente tipizzate. La classe non può essere ereditata.

public ref class StronglyTypedResourceBuilder abstract sealed
public static class StronglyTypedResourceBuilder
type StronglyTypedResourceBuilder = class
Public Class StronglyTypedResourceBuilder
Ereditarietà
StronglyTypedResourceBuilder

Esempio

L'esempio seguente genera una classe denominata DemoResources scritta in C# o Visual Basic (a seconda del codice sorgente dell'esempio). Questa classe si trova nello DemoApp spazio dei nomi e dispone di proprietà che restituiscono la bitmap di un logo e il nome di un'applicazione. Nell'esempio viene chiamato un metodo per creare il file con estensione resw necessario e richiede che sia presente un CreateResourceFile file bitmap denominato Logo.bmp nella directory corrente dell'esempio. L'esempio di codice usa il file di risorse seguente, denominato 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

Il codice dell'applicazione può quindi usare la classe come indicato di seguito:

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

Commenti

In genere, le risorse separano il codice dal contenuto all'interno di un'applicazione. La creazione e l'utilizzo di queste risorse semplifica lo sviluppo di applicazioni localizzabili. In .NET Framework le risorse vengono in genere usate usando la classe, che contiene metodi che forniscono l'accesso ResourceManager alle risorse specifiche delle impostazioni cultura in fase di esecuzione. Per altre informazioni sulla creazione e sull'utilizzo di risorse, vedere Risorse in App desktop.

Il supporto delle risorse fortemente tipizzato è una funzionalità in fase di compilazione che incapsula l'accesso alle risorse creando classi che contengono un set di proprietà statiche e di sola lettura (get). In questo modo è possibile usare le risorse invece di chiamare i ResourceManager.GetString metodi e ResourceManager.GetObject .

La funzionalità di base per il supporto delle risorse fortemente tipizzato viene fornita dalla StronglyTypedResourceBuilder classe (oltre all'opzione /str della riga di comando nella Resgen.exe (Generatore file di risorse). L'output Create del metodo è una classe che contiene proprietà fortemente tipizzata che corrispondono alle risorse a cui si fa riferimento nel parametro di input. Questa classe fornisce l'accesso in sola lettura alle risorse disponibili nel file elaborato.

Metodi

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

Genera un file di classe contenente proprietà fortemente tipizzate che corrispondono alle risorse a cui si fa riferimento nella raccolta specificata.

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

Genera un file di classe contenente proprietà fortemente tipizzate che corrispondono alle risorse a cui si fa riferimento nella raccolta specificata.

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

Genera un file di classe contenente proprietà fortemente tipizzate che corrispondono alle risorse nel file RESX specificato.

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

Genera un file di classe contenente proprietà fortemente tipizzate che corrispondono alle risorse nel file RESX specificato.

VerifyResourceName(String, CodeDomProvider)

Genera una stringa di risorsa valida in base alla stringa di input specificata e al provider di codice.

Si applica a