ResXDataNode Classe

Definizione

Rappresenta un elemento di un file di risorse XML (resx)

public ref class ResXDataNode sealed : System::Runtime::Serialization::ISerializable
public sealed class ResXDataNode : System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class ResXDataNode : System.Runtime.Serialization.ISerializable
type ResXDataNode = class
    interface ISerializable
[<System.Serializable>]
type ResXDataNode = class
    interface ISerializable
Public NotInheritable Class ResXDataNode
Implements ISerializable
Ereditarietà
ResXDataNode
Attributi
Implementazioni

Esempio

Nell'esempio seguente viene usato il metodo per ottenere ResXResourceReader.GetEnumerator un oggetto utilizzato per IDictionaryEnumerator enumerare gli oggetti in un file con ResXDataNode estensione resx. L'esempio include una CreateResourceFile routine che crea il file di risorse XML necessario.

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", "Estimated population, 2010", 
                            "The area in square miles", "Capital city or chief administrative center", 
                            "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}    // Estimated population, 2010
//    Area:                Area                 // The area in square miles
//    Capital:             Capital              // Capital city or chief administrative center
//    LCity:               Largest City         // The largest city based on 2010 data
Imports System.Collections
Imports System.ComponentModel.Design
Imports System.Resources

Module Example
   Private Const resxFilename As String = ".\CountryHeaders.resx"
     
   Public Sub Main()
      ' Create a resource file to read.
      CreateResourceFile()
      
      ' Enumerate the resources in the file.
      Dim rr As New ResXResourceReader(resxFilename)
      rr.UseResXDataNodes = True
      Dim dict As IDictionaryEnumerator = rr.GetEnumerator()
      Do While dict.MoveNext()
         Dim node As ResXDataNode = DirectCast(dict.Value, ResXDataNode)
         Console.WriteLine("{0,-20} {1,-20} {2}", 
                           node.Name + ":", 
                           node.GetValue(CType(Nothing, ITypeResolutionService)), 
                           If(Not String.IsNullOrEmpty(node.Comment), "// " + node.Comment, ""))
      Loop
   End Sub
   
   Private Sub CreateResourceFile()
      Dim rw As New ResxResourceWriter(resxFilename)
      Dim resNames() As String = {"Country", "Population", "Area", 
                                  "Capital", "LCity" }
      Dim columnHeaders() As String = { "Country Name", "Population (2010}", 
                                        "Area", "Capital", "Largest City" }
      Dim comments() As String = { "The localized country name", "Estimated population, 2010", 
                                   "The area in square miles", "Capital city or chief administrative center", 
                                   "The largest city based on 2010 data" }
      rw.AddResource("Title", "Country Information")
      rw.AddResource("nColumns", resNames.Length)
      For ctr As Integer = 0 To resNames.Length - 1
         Dim node As New ResXDataNode(resNames(ctr), columnHeaders(ctr))
         node.Comment = comments(ctr)
         rw.AddResource(node)
      Next
      rw.Generate()
      rw.Close()
   End Sub
End Module
' The example displays the following output:
'    Title:               Country Information
'    nColumns:            5
'    Country:             Country Name         // The localized country name
'    Population:          Population (2010}    // Estimated population, 2010
'    Area:                Area                 // The area in square miles
'    Capital:             Capital              // Capital city or chief administrative center
'    LCity:               Largest City         // The largest city based on 2010 data

Poiché la UseResXDataNodes proprietà è , il valore della proprietà è un oggetto anziché il valore della true IDictionaryEnumerator.Value ResXDataNode risorsa. In questo modo il commento di un elemento di risorsa è disponibile dalla ResXDataNode.Comment proprietà .

Commenti

La ResXDataNode classe supporta la rappresentazione di tipi di dati rtf all'interno di un file di risorse. Può supportare l'archiviazione di qualsiasi oggetto in un file di risorse, purché l'oggetto supporti la serializzazione e gli editor di tipi.

È possibile creare un oggetto chiamando uno dei costruttori di ResXDataNode classe di overload. È quindi possibile aggiungere l'elemento o l'elemento di risorsa a un file di risorse chiamando il ResXResourceWriter.AddResource metodo .

Per recuperare un oggetto esistente, è necessario enumerare gli oggetti in un file di risorse XML creando un'istanza di un oggetto , impostando la proprietà su e chiamando il metodo per ottenere un ResXDataNode ResXDataNode ResXResourceReader ResXResourceReader.UseResXDataNodes true ResXResourceReader.GetEnumerator enumeratore. Nell'esempio viene illustrata una situazione di questo tipo.

Costruttori

ResXDataNode(String, Object)

Inizializza una nuova istanza della classe ResXDataNode.

ResXDataNode(String, Object, Func<Type,String>)

Inizializza una nuova istanza della classe ResXDataNode.

ResXDataNode(String, ResXFileRef)

Inizializza una nuova istanza della classe ResXDataNode con un riferimento a un file di risorse.

ResXDataNode(String, ResXFileRef, Func<Type,String>)

Inizializza una nuova istanza della classe ResXDataNode con un riferimento a un file di risorse.

Proprietà

Comment

Ottiene o imposta un commento arbitrario relativo alla risorsa.

FileRef

Ottiene il riferimento al file per la risorsa.

Name

Ottiene o imposta il nome della risorsa.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetNodePosition()

Recupera la posizione della risorsa nel file di risorse.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
GetValue(AssemblyName[])

Recupera l'oggetto archiviato da questo nodo cercando gli assembly specificati.

GetValue(ITypeResolutionService)

Recupera l'oggetto archiviato da questo nodo utilizzando il servizio di risoluzione dei tipi specificato.

GetValueTypeName(AssemblyName[])

Recupera il nome di tipo per il valore esaminando gli assembly specificati.

GetValueTypeName(ITypeResolutionService)

Recupera il nome di tipo per il valore utilizzando il servizio di risoluzione dei tipi specificato.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Popola un oggetto SerializationInfo con i dati necessari per la serializzazione dell'oggetto di destinazione.

Si applica a

Vedi anche