ResXDataNode Klasse

Definition

Stellt ein Element in einer XML-Ressourcendatei (.resx) dar.Represents an element in an XML resource (.resx) file.

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
Public NotInheritable Class ResXDataNode
Implements ISerializable
Vererbung
ResXDataNode
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird die ResXResourceReader.GetEnumerator-Methode verwendet, um ein IDictionaryEnumerator Objekt abzurufen, das verwendet wird, um die ResXDataNode-Objekte in einer RESX-Datei aufzuzählen.The following example uses the ResXResourceReader.GetEnumerator method to obtain an IDictionaryEnumerator object that is used to enumerate the ResXDataNode objects in a .resx file. Das Beispiel enthält eine CreateResourceFile Routine, mit der die erforderliche XML-Ressourcen Datei erstellt wird.The example includes a CreateResourceFile routine that creates the necessary XML resource file.

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

Da die UseResXDataNodes-Eigenschaft trueist, ist der Wert der IDictionaryEnumerator.Value-Eigenschaft ein ResXDataNode Objekt und nicht der Ressourcen Wert.Because the UseResXDataNodes property is true, the value of the IDictionaryEnumerator.Value property is a ResXDataNode object rather than the resource value. Dadurch ist der Kommentar eines Ressourcen Elements aus der ResXDataNode.Comment-Eigenschaft verfügbar.This makes a resource item's comment available from the ResXDataNode.Comment property.

Hinweise

Die ResXDataNode-Klasse unterstützt die Darstellung von Rich-Datentypen in einer Ressourcen Datei.The ResXDataNode class supports the representation of rich data types within a resource file. Sie kann die Speicherung von Objekten in einer Ressourcen Datei unterstützen, solange das-Objekt Serialisierung und typeditoren unterstützt.It can support the storage of any object in a resource file, so long as the object supports serialization and type editors.

Sie können ein ResXDataNode Objekt erstellen, indem Sie einen der überladenen Klassenkonstruktoren aufrufen.You can create a ResXDataNode object by calling one of its overloaded class constructors. Anschließend können Sie das Ressourcen Element oder Element zu einer Ressourcen Datei hinzufügen, indem Sie die ResXResourceWriter.AddResource-Methode aufrufen.You can then add the resource item or element to a resource file by calling the ResXResourceWriter.AddResource method.

Zum Abrufen eines vorhandenen ResXDataNode Objekts müssen Sie die ResXDataNode Objekte in einer XML-Ressourcen Datei auflisten, indem Sie ein ResXResourceReader-Objekt instanziieren, die ResXResourceReader.UseResXDataNodes-Eigenschaft auf truefestlegen und die ResXResourceReader.GetEnumerator-Methode aufrufen, um einen Enumerator abzurufen.To retrieve an existing ResXDataNode object, you must enumerate the ResXDataNode objects in an XML resource file by instantiating a ResXResourceReader object, setting the ResXResourceReader.UseResXDataNodes property to true, and calling the ResXResourceReader.GetEnumerator method to get an enumerator. Dies wird im Beispiel veranschaulicht.The example provides an illustration.

Konstruktoren

ResXDataNode(String, Object)

Initialisiert eine neue Instanz der Klasse ResXDataNode.Initializes a new instance of the ResXDataNode class.

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

Initialisiert eine neue Instanz der Klasse ResXDataNode.Initializes a new instance of the ResXDataNode class.

ResXDataNode(String, ResXFileRef)

Initialisiert eine neue Instanz der ResXDataNode-Klasse mit einem Verweis auf eine Ressourcendatei.Initializes a new instance of the ResXDataNode class with a reference to a resource file.

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

Initialisiert eine neue Instanz der ResXDataNode-Klasse mit einem Verweis auf eine Ressourcendatei.Initializes a new instance of the ResXDataNode class with a reference to a resource file.

Eigenschaften

Comment

Ruft einen beliebigen Kommentar bezüglich dieser Ressource ab oder legt diesen fest.Gets or sets an arbitrary comment regarding this resource.

FileRef

Ruft den Dateiverweis für diese Ressource ab.Gets the file reference for this resource.

Name

Ruft den Namen dieser Ressource ab oder legt diesen fest.Gets or sets the name of this resource.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Dient als die Standard-HashfunktionServes as the default hash function.

(Geerbt von Object)
GetNodePosition()

Ruft die Position der Ressource in der Ressourcendatei ab.Retrieves the position of the resource in the resource file.

GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
GetValue(AssemblyName[])

Ruft das Objekt ab, das durch diesen Knoten gespeichert wird, indem die angegebenen Assemblys durchsucht werden.Retrieves the object that is stored by this node by searching the specified assemblies.

GetValue(ITypeResolutionService)

Ruft das Objekt ab, das durch diesen Knoten gespeichert wird, indem der angegebene Typauflösungsdienst verwendet wird.Retrieves the object that is stored by this node by using the specified type resolution service.

GetValueTypeName(AssemblyName[])

Ruft den Typnamen für den Wert durch Untersuchen der angegebenen Assembly ab.Retrieves the type name for the value by examining the specified assemblies.

GetValueTypeName(ITypeResolutionService)

Ruft den Typnamen für den Wert über den angegebenen Typauflösungsdiensts ab.Retrieves the type name for the value by using the specified type resolution service.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Füllt ein SerializationInfo-Objekt mit den Daten auf, die zur Serialisierung des Zielobjekts benötigt werden.Populates a SerializationInfo object with the data needed to serialize the target object.

Gilt für:

Siehe auch