Ler em inglês

Partilhar via


StronglyTypedResourceBuilder Classe

Definição

Dá suporte a recursos fortemente tipados. Essa classe não pode ser herdada.

C#
public static 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:

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();
   }
}

O código do aplicativo pode usar a classe da seguinte maneira:

C#
this.Text = DemoApp.DemoResources.AppTitle;
System.Drawing.Bitmap bmp = 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

Produto Versões
.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