Share via


StronglyTypedResourceBuilder Classe

Definição

Dá suporte a recursos fortemente tipados. Essa 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 a seguir gera uma classe chamada DemoResources que é escrita em C# ou Visual Basic (dependendo do código-fonte do exemplo). Essa classe está no DemoApp namespace e tem propriedades que retornam o bitmap de um logotipo e o nome de um aplicativo. O exemplo chama um CreateResourceFile método para criar o arquivo .resw necessário e exige que um arquivo bitmap chamado Logo.bmp seja encontrado no diretório atual do exemplo. O exemplo de código usa o seguinte arquivo de recurso, chamado 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 código do aplicativo pode usar a classe da seguinte maneira:

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

Comentários

Normalmente, os recursos separam o código do conteúdo em um aplicativo. Criar e consumir esses recursos facilita o desenvolvimento de aplicativos localizáveis. No .NET Framework, os recursos geralmente são consumidos usando a ResourceManager classe , que contém métodos que fornecem acesso a recursos específicos da cultura em tempo de execução. Para obter mais informações sobre como criar e consumir recursos, consulte Recursos em Aplicativos da Área de Trabalho.

O suporte a recursos fortemente tipado é um recurso de tempo de compilação que encapsula o acesso aos recursos criando classes que contêm um conjunto de propriedades estáticas somente leitura (get). Isso fornece uma maneira 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 tipado é fornecida pela StronglyTypedResourceBuilder classe (bem como a opção /str de linha de comando no Resgen.exe (Gerador de Arquivos de Recurso)). A saída do Create método é uma classe que contém propriedades fortemente tipdas que correspondem aos recursos referenciados no parâmetro de entrada. Essa classe fornece acesso somente leitura aos recursos que estão disponíveis no arquivo processado.

Métodos

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

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

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

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

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

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

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

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

VerifyResourceName(String, CodeDomProvider)

Gera uma cadeia de caracteres de recurso válida com base na cadeia de caracteres de entrada e no provedor do código especificados.

Aplica-se a