Compartilhar via


Recursos no formato de arquivo .resx

O formato de arquivo .resx recurso consiste em entradas XML, que especifica objetos e seqüências dentro de Rótulos XML.Uma vantagem de um arquivo .resx é que quando aberto com um editor de texto (sistema autônomo o bloco de notas ou o Microsoft palavra) ele pode ser gravado, analisado e manipulado.Ao exibir um arquivo .resx, você pode realmente ver o formato binário de um objeto incorporado (uma imagem por exemplo) quando esta informações binárias faz parte do manifesto do recurso.Além dessa informações binárias, um arquivo .resx é completamente legível e fácil manutenção.

Observação:

Não use o arquivo de recursos para guardar senhas, informações sigilosas ou dados particulares.

Um arquivo .resx contém um conjunto padrão de informações de cabeçalho, que descreve o formato das entradas do recurso e especifica as informações de controle de versão para o XML usado para analisar os dados.O exemplo a seguir mostra o que um conjunto comum de instruções de cabeçalho em um arquivo .resx pode parecer.

<?xml version="1.0" encoding="utf-8"?>
<root>
    <xsd:schema id="root"  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="data">
            <xsd:complexType>
                <xsd:sequence>
                    <xsd:element name="value" type="xsd:string" minOccurs="0"
                    msdata:Ordinal="2" />
                </xsd:sequence>
                    <xsd:attribute name="name" type="xsd:string" />
                    <xsd:attribute name="type" type="xsd:string" />
                    <xsd:attribute name="mimetype" type="xsd:string" />
            </xsd:complexType>
        </xsd:element>

Após sistema autônomo informações de cabeçalho, cada entrada é descrita sistema autônomo um emparelhar nome/valor, muito semelhante à forma em que sistema autônomo seqüências de caracteres são especificadas em um arquivo .txt.Um emparelhar nome/valor no formato .resx é empacotado no código XML, que descreve valores de seqüência de caracteres ou objeto.Quando uma seqüência de caracteres é adicionada a um arquivo .resx, o nome dados cadeia de caracteres é incorporado em um <dados> marca e o valor está contido em um <value> marca, sistema autônomo no exemplo a seguir.

    <data name="string1">
        <value>hello</value>
    </data>

Quando um objeto é inserido em um arquivo de .resx, o mesmo <dados> and <valor> Rótulos são usadas para descrever a entrada, mas o <dados> marca inclui um tipo ou o especificador de tipo de MIME.O especificador de tipo contém o tipo de dados do objeto sendo salvo.O especificador de tipo MIME armazena o tipo de base (Base64) as informações binárias armazenadas, se o objeto consiste em dados binário.

Observação:

Todos os arquivos .resx usam um formatador de serialização binária para gerar e analisar os dados binário para um tipo especificado.sistema autônomo resultado, em que um arquivo .resx pode se tornar inválido se o binário formato de serialização para um objeto muda de forma incompatível.

O exemplo a seguir mostra um Int32 objeto salvo em um arquivo .resx e o início de um objeto de bitmap, que contém o binário informações a partir de um arquivo .gif real.

    <data name="i1" type="System.Int32, mscorlib">
        <value>20</value>
    </data>

    <data name="flag" type="System.Drawing.Bitmap, System.Drawing,   
    Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
    mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>
            AAEAAAD/////AQAAAAAAAAAMAgAAADtTeX…
        </value>
    </data>

Usando a classe ResXResourceWriter

Você pode usar o ResXResourceWriter classe para criar um arquivo .resx diretamente do código. O exemplo a seguir ilustra sistema autônomo criar um arquivo .resx que armazena um arquivo .jpg sistema autônomo um dos recursos dentro do arquivo.Primeiro, criar a imagem usando o Método Image.FromFile.Em seguida, crie um ResXResourceWriter com um nome de arquivo exclusivo.telefonar the Método ResXResourceWriter.AddResource para cada imagem adicionar o arquivo.Finalmente, chamar o Método ResXResourceWriter.Close para gravar as informações da imagem no arquivo de recurso e fechar o ResXResourceWriter.

Imports System
Imports System.Drawing
Imports System.Resources

Public Class SampleClass

    Public Sub Main()
        Dim img As Image
        Dim rsxw As ResXResourceWriter
        img = Image.FromFile("en-AU.jpg")
        rsxw = new ResXResourceWriter("en-AU.resx")
        rsxw.AddResource("en-AU.jpg",img)
        rsxw.Close()
    End Sub
End Class
using System;
using System.Drawing;
using System.Resources;
 
public class SampleClass
{
    public static void Main() 
    {
        Image img = Image.FromFile("en-AU.jpg");
        ResXResourceWriter rsxw = new ResXResourceWriter("en-AU.resx"); 
        rsxw.AddResource("en-AU.jpg",img);
        rsxw.Close();
    }
}

Você também pode manipular um arquivo .resx diretamente.No entanto, para evitar o corrompimento do arquivo, tenha cuidado para não modificar qualquer informação binária armazenada no arquivo.

Se você precisar recuperar os nomes e valores dos recursos em um arquivo .resx, use um ResXResourceReader. Para obter um exemplo de código que demonstra como criar um ResXResourceReader para um arquivo especificado, iterar por meio do arquivo e imprimir os nomes e valores de recursos, consulte o Classe ResXResourceReader.

Não é possível incorporar um arquivo .resx em um tempo de execução executável ou compilá-lo em um asssembly satélite.Você deve converter o arquivo .resx em um arquivo .Recursos usando o Recurso File gerador (Resgen.exe).Para obter mais informações, consulte Recursos no formato .Resources.

Consulte também

Conceitos

Criando arquivos recurso

Recursos no formato arquivo .Resources

Referência

Recurso Arquivo Generator (Resgen.exe)