StronglyTypedResourceBuilder Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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. |