Ressources au format de fichier .Resx

Guide du développeur .NET Framework 
Ressources au format de fichier .Resx 

Le format de fichier de ressources .resx se compose d'entrées XML, qui spécifient des objets et des chaînes dans des balises XML. L'un des avantages d'un fichier .resx est que lorsqu'il est ouvert avec un éditeur de texte (tel que Bloc-notes ou Microsoft Word) il peut être analysé, manipulé et des données peuvent y être écrites. Lorsque vous affichez un fichier .resx, vous pouvez voir la forme binaire d'un objet incorporé (une image par exemple) lorsque ces informations binaires font partie d'un manifeste de ressources. En dehors des informations binaires, un fichier .resx est lisible et peut être tenu à jour.

RemarqueRemarque

N'utilisez pas de fichiers de ressources pour stocker des mots de passe, des informations sensibles ou des données privées.

Un fichier .resx contient un ensemble standard d'informations d'en-tête, qui décrit le format des entrées de ressources et spécifie les informations de versioning pour le XML utilisé pour analyser les données. L'exemple suivant illustre un ensemble d'instructions d'en-tête standard dans un fichier .resx.



<?xml version="1.0" encoding="utf-8"?>
<root>
    <xsd:schema id="root" xmlns="" 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>

À la suite des informations d'en-tête, chaque entrée est décrite comme une paire nom/valeur, qui ressemble beaucoup à la façon dont les chaînes sont spécifiées dans un fichier .txt. Une paire nom/valeur dans un fichier .resx est encapsulée dans le code XML, qui décrit les valeurs chaîne ou objet. Lorsqu'une chaîne est ajoutée à un fichier .resx, le nom de la chaîne est incorporé dans une balise <data> et la valeur est comprise entre des balises <value>, comme dans l'exemple suivant.



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

Lorsqu'un objet est inséré dans un fichier .resx, ces balises <data> et <value> sont utilisées pour décrire l'entrée, mais la balise <data> comprend un type ou un spécificateur de type MIME. Le spécificateur de type contient le type de données de l'objet enregistré. Le spécificateur de type MIME contient le type de base (Base64) des informations binaires stockées, si l'objet se compose de données binaires.

RemarqueRemarque

Tous les fichiers .resx utilisent un formateur de sérialisation binaire pour générer et analyser les données binaires d'un type spécifié. Par conséquent, un fichier .resx peut devenir non valide si le format de sérialisation binaire d'un objet change d'une manière non compatible.

L'exemple suivant illustre un objet Int32 enregistré dans un fichier .resx et le début d'un objet bitmap, qui contient les informations binaires à partir d'un fichier .gif réel.



    <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>

Utilisation de la classe ResXResourceWriter

Vous pouvez utiliser la classe ResXResourceWriter pour créer un fichier .resx directement à partir du code. L'exemple suivant montre comment créer un fichier .resx qui stocke un fichier .jpg comme l'une des ressources dans le fichier. Créez tout d'abord l'image en utilisant la méthode Image.FromFile. Ensuite, créez ResXResourceWriter avec un nom de fichier unique. Appelez la méthode ResXResourceWriter.AddResource pour chaque image à ajouter au fichier. Pour finir, appelez la méthode ResXResourceWriter.Close pour écrire les informations sur l'image dans le fichier de ressources et fermer ResXResourceWriter.



Visual Basic
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



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

Vous pouvez également manipuler directement un fichier .resx. Cependant, pour éviter d'endommager le fichier, faites attention à ne pas modifier les informations binaires stockées dans le fichier.

Si vous devez récupérer les noms et les valeurs des ressources dans un fichier .resx, utilisez ResXResourceReader. Pour obtenir un exemple de code qui montre comment créer ResXResourceReader pour un fichier spécifié, parcourir le fichier et imprimer les noms et les valeurs des ressources, consultez la rubrique ResXResourceReader, classe.

Vous ne pouvez pas incorporer un fichier .resx dans un exécutable runtime ou le compiler dans un assembly satellite. Vous devez convertir votre fichier .resx en fichier .resources en utilisant l'outil Resource File Generator Tool (Resgen.exe). Pour plus d'informations, consultez Ressources dans un fichier au format .Resources.

Voir aussi


Ces informations proviennent du site de http://msdn2.microsoft.com
Source de cette page : http://msdn2.microsoft.com/fr-fr/library/ekyft91f.aspx

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

8 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-6839
Document créé le 07/11/06 04:38, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-ekyft91f.html Document affiché 10 fois ce mois de Mai.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Navigation (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
1,35 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
L'homme intelligent a de commun avec l'imbécile de croire que celui qui ne pense pas comme lui est un imbécile.

Maurice Chapelan
 
l'infobrol
Nous sommes le Jeudi 31 Mai 2012, 12:28, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)