Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

ResXResourceReader classe

 

Date de publication : novembre 2016

Énumère les fichiers (.resx) et flux de ressources XML et lit les paires nom/valeur de ressource séquentielles.

Espace de noms:   System.Resources
Assembly:  System.Windows.Forms (dans System.Windows.Forms.dll)

System.Object
  System.Resources.ResXResourceReader

[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
[PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust")]
public class ResXResourceReader : IResourceReader, IEnumerable, 
	IDisposable

NomDescription
System_CAPS_pubmethodResXResourceReader(Stream)

Initialise une nouvelle instance de la classe ResXResourceReader pour le flux spécifié.

System_CAPS_pubmethodResXResourceReader(Stream, AssemblyName[])

Initialise une nouvelle instance de la classe ResXResourceReader en utilisant un flux et un tableau de noms d'assemblys.

System_CAPS_pubmethodResXResourceReader(Stream, ITypeResolutionService)

Initialise une nouvelle instance de la classe ResXResourceReader en utilisant un flux d'entrée et un service de résolution de type.

System_CAPS_pubmethodResXResourceReader(String)

Initialise une nouvelle instance de la classe ResXResourceReader pour le fichier de ressources spécifié.

System_CAPS_pubmethodResXResourceReader(String, AssemblyName[])

Initialise une nouvelle instance de la classe ResXResourceReader en utilisant un nom de fichier de ressources XML et un tableau de noms d'assemblys.

System_CAPS_pubmethodResXResourceReader(String, ITypeResolutionService)

Initialise une nouvelle instance de la classe ResXResourceReader en utilisant un nom de fichier et un service de résolution de type.

System_CAPS_pubmethodResXResourceReader(TextReader)

Initialise une nouvelle instance de la classe ResXResourceReader pour le TextReader spécifié.

System_CAPS_pubmethodResXResourceReader(TextReader, AssemblyName[])

Initialise une nouvelle instance de la classe ResXResourceReader en utilisant un objet TextReader et un tableau de noms d'assemblys.

System_CAPS_pubmethodResXResourceReader(TextReader, ITypeResolutionService)

Initialise une nouvelle instance de la classe ResXResourceReader en utilisant un lecteur de flux de texte et un service de résolution de type.

NomDescription
System_CAPS_pubpropertyBasePath

Obtient ou définit le chemin d'accès de base pour le chemin de fichier relatif spécifié dans un objet ResXFileRef.

System_CAPS_pubpropertyUseResXDataNodes

Obtient ou définit une valeur qui indique si des objets ResXDataNode sont retournés pendant la lecture du flux ou du fichier de ressources XML actuel.

NomDescription
System_CAPS_pubmethodClose()

Libère toutes les ressources utilisées par ResXResourceReader.

System_CAPS_protmethodDispose(Boolean)

Libère les ressources non managées utilisées par ResXResourceReader et libère éventuellement les ressources managées.

System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_protmethodFinalize()

Ce membre se substitue à la méthode Finalize.(Remplace Object.Finalize().)

System_CAPS_pubmethodSystem_CAPS_staticFromFileContents(String)

Crée un objet ResXResourceReader et l'initialise pour lire une chaîne dont le contenu se présente sous la forme d'un fichier de ressources XML.

System_CAPS_pubmethodSystem_CAPS_staticFromFileContents(String, AssemblyName[])

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Crée un objet ResXResourceReader et l'initialise pour lire une chaîne dont le contenu se présente sous la forme d'un fichier de ressources XML et pour utiliser un tableau d'objets AssemblyName afin de résoudre les noms de types spécifiés dans une ressource.

System_CAPS_pubmethodSystem_CAPS_staticFromFileContents(String, ITypeResolutionService)

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Crée un objet ResXResourceReader et l'initialise pour lire une chaîne dont le contenu se présente sous la forme d'un fichier de ressources XML et pour utiliser un objet ITypeResolutionService afin de résoudre les noms de types spécifiés dans une ressource.

System_CAPS_pubmethodGetEnumerator()

Retourne un énumérateur pour l'objet ResXResourceReader actuel.

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetMetadataEnumerator()

Fournit un énumérateur de dictionnaire qui peut récupérer les propriétés au moment du design du flux ou du fichier de ressources XML actuel.

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_protmethodMemberwiseClone()

Crée une copie superficielle du Object actuel.(Hérité de Object.)

System_CAPS_pubmethodToString()

Retourne une chaîne qui représente l'objet actuel.(Hérité de Object.)

NomDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerable.GetEnumerator()

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Retourne un énumérateur pour l'objet ResXResourceReader actuel. Pour obtenir une description de ce membre, consultez la méthode IEnumerable.GetEnumerator.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIDisposable.Dispose()

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Libère les ressources non managées utilisées par ResXResourceReader et libère éventuellement les ressources managées. Pour obtenir une description de ce membre, consultez la méthode IDisposable.Dispose.

NomDescription
System_CAPS_pubmethodAsParallel()

Surchargé. Active la parallélisation d'une requête.(Défini par ParallelEnumerable.)

System_CAPS_pubmethodAsQueryable()

Surchargé. Convertit un IEnumerable à un IQueryable.(Défini par Queryable.)

System_CAPS_pubmethodCast<TResult>()

Convertit les éléments d’un IEnumerable au type spécifié.(Défini par Enumerable.)

System_CAPS_pubmethodOfType<TResult>()

Filtre les éléments d’un IEnumerable basé sur un type spécifié.(Défini par Enumerable.)

La ResXResourceReader classe fournit une implémentation par défaut de le IResourceReader interface qui lit les informations de ressource au format XML. Pour lire des informations sur les ressources à partir d’un format de ressource binaire, utilisez la ResourceReader classe.

Vous utilisez la ResXResourceReader classe énumérer les ressources dans les fichiers .resx en parcourant l’énumérateur de dictionnaire (IDictionaryEnumerator) qui est retourné par le GetEnumerator (méthode). Vous appelez les méthodes fournies par IDictionaryEnumerator pour atteindre la ressource suivante et lire le nom et la valeur de chaque ressource dans le fichier .resx.

System_CAPS_noteRemarque

La ResXResourceReader classe fournit deux énumérateurs. Le ResXResourceReader.GetEnumerator méthode renvoie une IDictionaryEnumerator de l’objet ; nous vous recommandons d’utiliser cette méthode pour énumérer les ressources. Le ResXResourceReader.IEnumerable.GetEnumerator méthode est une implémentation d’interface explicite qui retourne un IEnumerator de l’objet ; nous ne recommandons pas son utilisation.

L’exemple suivant utilise le GetEnumerator méthode pour obtenir un IDictionaryEnumerator objet qui est utilisé pour énumérer les ressources dans un fichier .resx. L’exemple inclut un CreateResourceFile routine qui crée le fichier de ressources nécessaires.

using System;
using System.Collections;
using System.Resources;

public class Example
{
   private const string resxFilename = @".\CountryHeaders.resx";

   public static void Main()
   {
      // Create a resource file to read.
      CreateResourceFile();

      // Enumerate the resources in the file.
      ResXResourceReader rr = new ResXResourceReader(resxFilename);
      IDictionaryEnumerator dict = rr.GetEnumerator();
      while (dict.MoveNext())
         Console.WriteLine("{0}: {1}", dict.Key, dict.Value);   
   }

   private static void CreateResourceFile()
   {
      ResXResourceWriter rw = new ResXResourceWriter(resxFilename);
      string[] resNames = {"Country", "Population", "Area", 
                           "Capital", "LCity" };
      string[] columnHeaders = { "Country Name", "Population (2010}", 
                                 "Area", "Capital", "Largest City" };
      string[] comments = { "The localized country name", "", 
                            "The area in square miles", "", 
                            "The largest city based on 2010 data" };
      rw.AddResource("Title", "Country Information");
      rw.AddResource("nColumns", resNames.Length);
      for (int ctr = 0; ctr < resNames.Length; ctr++) {
         ResXDataNode node = new ResXDataNode(resNames[ctr], columnHeaders[ctr]);
         node.Comment = comments[ctr];
         rw.AddResource(node);
      }
      rw.Generate();
      rw.Close();
   }
}
// The example displays the following output:
//       Title: Country Information
//       nColumns: 5
//       Country: Country Name
//       Population: Population (2010}
//       Area: Area
//       Capital: Capital
//       LCity: Largest City

Si le UseResXDataNodes propriété est true, la valeur de la IDictionaryEnumerator.Value propriété est un ResXDataNode au lieu de la valeur de ressource de l’objet. Commentaire de l’élément d’une ressource sont ainsi disponibles à partir de la ResXDataNode.Comment propriété. L’exemple suivant définit le UseResXDataNodes propriété true et énumère les ressources dans un fichier .resx,

using System;
using System.Collections;
using System.ComponentModel.Design;
using System.Resources;

public class Example
{
   private const string resxFilename = @".\CountryHeaders.resx";

   public static void Main()
   {
      // Create a resource file to read.
      CreateResourceFile();

      // Enumerate the resources in the file.
      ResXResourceReader rr = new ResXResourceReader(resxFilename);
      rr.UseResXDataNodes = true;
      IDictionaryEnumerator dict = rr.GetEnumerator();
      while (dict.MoveNext()) {
         ResXDataNode node = (ResXDataNode) dict.Value;
         Console.WriteLine("{0,-20} {1,-20} {2}", 
                           node.Name + ":", 
                           node.GetValue((ITypeResolutionService) null), 
                           ! String.IsNullOrEmpty(node.Comment) ? "// " + node.Comment : "");
      }
   }

   private static void CreateResourceFile()
   {
      ResXResourceWriter rw = new ResXResourceWriter(resxFilename);
      string[] resNames = {"Country", "Population", "Area", 
                           "Capital", "LCity" };
      string[] columnHeaders = { "Country Name", "Population (2010}", 
                                 "Area", "Capital", "Largest City" };
      string[] comments = { "The localized country name", "", 
                            "The area in square miles", "", 
                            "The largest city based on 2010 data" };
      rw.AddResource("Title", "Country Information");
      rw.AddResource("nColumns", resNames.Length);
      for (int ctr = 0; ctr < resNames.Length; ctr++) {
         ResXDataNode node = new ResXDataNode(resNames[ctr], columnHeaders[ctr]);
         node.Comment = comments[ctr];
         rw.AddResource(node);
      }
      rw.Generate();
      rw.Close();
   }
}
// The example displays the following output:
//    Title:               Country Information
//    nColumns:            5
//    Country:             Country Name         // The localized country name
//    Population:          Population (2010}
//    Area:                Area                 // The area in square miles
//    Capital:             Capital
//    LCity:               Largest City         // The largest city based on 2010 data

Si UseResXDataNodes est true, le ResXDataNode éléments de l’énumération peuvent être :

  • Ressources nommées avec leurs données. Dans ce cas, le ResXDataNode.FileRef propriété est null.

  • Des ressources nommées ainsi que le nom du fichier qui contient les données de ressources. Dans ce cas, le ResXDataNode.FileRef propriété retourne un ResXFileRef objet qui fournit des informations sur la ressource, y compris son nom de fichier. Si les noms de fichiers relatifs sont utilisés, vous devez toujours définir le BasePath propriété afin de fournir un point de référence pour le chemin d’accès relatif du fichier.

Si vous souhaitez récupérer des ressources nommées d’un fichier .resx au lieu d’énumérer ses ressources, vous pouvez instancier un ResXResourceSet objet et appeler ses GetString et GetObject méthodes.

System_CAPS_noteRemarque

La ResXResourceReader classe contient une demande de liaison et une demande d’héritage au niveau de la classe qui s’applique à tous les membres. Un SecurityException exception est levée lorsque l’appelant immédiat ou la classe dérivée ne dispose pas d’autorisations de confiance totale.

L’exemple suivant montre comment utiliser un ResXResourceReader pour parcourir les ressources dans un fichier .resx. Tout d’abord, le ResXResourceReaderrsxr est créé pour le fichier items.resx. Ensuite, le GetEnumerator méthode est utilisée pour créer un IDictionaryEnumerator pour parcourir les ressources et afficher le contenu dans la console.

using System;
using System.Resources;
using System.Collections;

class ReadResXResources
{
   public static void Main()
   {

      // Create a ResXResourceReader for the file items.resx.
      ResXResourceReader rsxr = new ResXResourceReader("items.resx");

      // Iterate through the resources and display the contents to the console.
      foreach (DictionaryEntry d in rsxr)
      {
    Console.WriteLine(d.Key.ToString() + ":\t" + d.Value.ToString());
      }

     //Close the reader.
     rsxr.Close();
   }
}

SecurityAction.LinkDemand

for full trust for the immediate caller. This member cannot be used by partially trusted code.

SecurityAction.InheritanceDemand

for full trust for inheritors. This class cannot be inherited by partially trusted code.

.NET Framework
Disponible depuis 1.1

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: