StronglyTypedResourceBuilder Classe

Definição

Fornece suporte para recursos fortemente tipados. Esta classe não pode ser herdada.

public ref class StronglyTypedResourceBuilder abstract sealed
public static class StronglyTypedResourceBuilder
type StronglyTypedResourceBuilder = class
Public Class StronglyTypedResourceBuilder
Herança
StronglyTypedResourceBuilder

Exemplos

O exemplo seguinte gera uma classe chamada DemoResources que é escrita em C# ou Visual Basic (dependendo do código-fonte do exemplo). Esta classe está no DemoApp namespace e tem propriedades que devolvem o bitmap de um logótipo e o nome de uma aplicação. O exemplo chama um CreateResourceFile método para criar o ficheiro .resw necessário e requer que um ficheiro bitmap chamado Logo.bmp seja encontrado no diretório atual do exemplo. O exemplo de código utiliza o seguinte ficheiro de recurso, denominado 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

O seu código de aplicação pode então usar a classe da seguinte forma:

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

Observações

Normalmente, os recursos separam o código do conteúdo dentro de uma aplicação. Criar e consumir estes recursos facilita o desenvolvimento de aplicações localizáveis. No .NET Framework, os recursos são geralmente consumidos utilizando a classe ResourceManager, que contém métodos que fornecem acesso a recursos específicos da cultura em tempo de execução. Para mais informações sobre como criar e consumir recursos, consulte Recursos em Aplicações de Ambiente de Trabalho.

O suporte a recursos fortemente tipados é uma funcionalidade em tempo de compilação que encapsula o acesso a recursos criando classes que contêm um conjunto de propriedades estáticas, apenas de leitura (get). Isto oferece uma forma alternativa de consumir recursos em vez de chamar os ResourceManager.GetString métodos e.ResourceManager.GetObject

A funcionalidade básica para suporte a recursos fortemente tipados é fornecida pela StronglyTypedResourceBuilder classe (bem como a /str opção de linha de comandos no Resgen.exe (Gerador de Ficheiros de Recursos)). A saída do Create método é uma classe que contém propriedades fortemente tipadas que correspondem aos recursos referenciados no parâmetro de entrada. Esta classe fornece acesso apenas de leitura aos recursos disponíveis no ficheiro processado.

Métodos

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

Gera um ficheiro de classe que contém propriedades fortemente tipicadas que correspondem aos recursos referenciados na coleção especificada.

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

Gera um ficheiro de classe que contém propriedades fortemente tipicadas que correspondem aos recursos referenciados na coleção especificada.

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

Gera um ficheiro de classe que contém propriedades fortemente tipadas que correspondem aos recursos no ficheiro .resx especificado.

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

Gera um ficheiro de classe que contém propriedades fortemente tipadas que correspondem aos recursos no ficheiro .resx especificado.

VerifyResourceName(String, CodeDomProvider)

Gera uma cadeia de recursos válida com base na cadeia de entrada e no fornecedor de código especificados.

Aplica-se a