Leggi in inglese

Condividi tramite


StronglyTypedResourceBuilder Classe

Definizione

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

C#
public static 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 spazio dei DemoApp nomi e ha proprietà che restituiscono la bitmap di un logo e il nome di un'applicazione. Nell'esempio viene chiamato un CreateResourceFile metodo per creare il file con estensione resw necessario e è necessario trovare un file bitmap denominato Logo.bmp nella directory corrente dell'esempio. Nell'esempio di codice viene usato il file di risorse seguente, denominato 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();
   }
}

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

C#
this.Text = DemoApp.DemoResources.AppTitle;
System.Drawing.Bitmap bmp = 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 semplificano lo sviluppo di applicazioni localizzabili. In .NET Framework le risorse vengono in genere utilizzate tramite la ResourceManager classe , che contiene metodi che forniscono l'accesso alle risorse specifiche delle impostazioni cultura in fase di esecuzione. Per altre informazioni sulla creazione e l'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 di sola lettura (get). In questo modo è possibile utilizzare le risorse in alternativa anziché chiamare i ResourceManager.GetString metodi e ResourceManager.GetObject .

La funzionalità di base per il supporto delle risorse fortemente tipizzato viene fornita dalla StronglyTypedResourceBuilder classe (nonché dall'opzione /str della riga di comando nella Resgen.exe (generatore di file di risorse) . L'output del Create metodo è una classe che contiene proprietà fortemente tipizzate che corrispondono alle risorse a cui viene fatto 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

Prodotto Versioni
.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