ResXDataNode Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt ein Element in einer XML-Ressourcendatei (RESX) dar.
public ref class ResXDataNode sealed : System::Runtime::Serialization::ISerializable
[System.Serializable]
public sealed class ResXDataNode : System.Runtime.Serialization.ISerializable
public sealed class ResXDataNode : System.Runtime.Serialization.ISerializable
[<System.Serializable>]
type ResXDataNode = class
interface 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 zum Aufzählen der ResXDataNode Objekte in einer RESX-Datei verwendet wird. Das Beispiel enthält eine CreateResourceFile Routine, die die erforderliche XML-Ressourcendatei erstellt.
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 es sich bei der UseResXDataNodes Eigenschaft trueum einen Wert handelt, handelt es sich bei der IDictionaryEnumerator.Value Eigenschaft um ein ResXDataNode Objekt und nicht um den Ressourcenwert. Dadurch wird der Kommentar eines Ressourcenelements aus der ResXDataNode.Comment Eigenschaft verfügbar.
Hinweise
Von Bedeutung
Das Aufrufen von Methoden aus dieser Klasse mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. Rufen Sie die Methoden aus dieser Klasse nur mit vertrauenswürdigen Daten auf. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.
Die ResXDataNode Klasse unterstützt die Darstellung von umfangreichen Datentypen in einer Ressourcendatei. Es kann den Speicher eines beliebigen Objekts in einer Ressourcendatei unterstützen, solange das Objekt serialisierung und Typ-Editoren unterstützt.
Sie können ein ResXDataNode Objekt erstellen, indem Sie einen seiner überladenen Klassenkonstruktoren aufrufen. Anschließend können Sie das Ressourcenelement oder -element zu einer Ressourcendatei hinzufügen, indem Sie die ResXResourceWriter.AddResource Methode aufrufen.
Zum Abrufen eines vorhandenen ResXDataNode Objekts müssen Sie die ResXDataNode Objekte in einer XML-Ressourcendatei aufzählen, indem Sie ein ResXResourceReader Objekt instanziieren, die ResXResourceReader.UseResXDataNodes Eigenschaft truefestlegen und die ResXResourceReader.GetEnumerator Methode aufrufen, um einen Enumerator abzurufen. Das Beispiel stellt eine Abbildung bereit.
Konstruktoren
| Name | Beschreibung |
|---|---|
| ResXDataNode(String, Object, Func<Type,String>) |
Initialisiert eine neue Instanz der ResXDataNode-Klasse. |
| ResXDataNode(String, Object) |
Initialisiert eine neue Instanz der ResXDataNode-Klasse. |
| ResXDataNode(String, ResXFileRef, Func<Type,String>) |
Initialisiert eine neue Instanz der ResXDataNode Klasse mit einem Verweis auf eine Ressourcendatei. |
| ResXDataNode(String, ResXFileRef) |
Initialisiert eine neue Instanz der ResXDataNode Klasse mit einem Verweis auf eine Ressourcendatei. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Comment |
Ruft einen beliebigen Kommentar zu dieser Ressource ab oder legt diesen fest. |
| FileRef |
Ruft den Dateiverweis für diese Ressource ab. |
| Name |
Dient zum Abrufen oder Festlegen des Namens dieser Ressource. |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetNodePosition() |
Ruft die Position der Ressource in der Ressourcendatei ab. |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| GetValue(AssemblyName[]) |
Ruft das Objekt ab, das von diesem Knoten gespeichert wird, indem die angegebenen Assemblys durchsucht werden. |
| GetValue(ITypeResolutionService) |
Ruft das Objekt ab, das von diesem Knoten mithilfe des angegebenen Typauflösungsdiensts gespeichert wird. |
| GetValueTypeName(AssemblyName[]) |
Ruft den Typnamen für den Wert ab, indem die angegebenen Assemblys untersucht werden. |
| GetValueTypeName(ITypeResolutionService) |
Ruft den Typnamen für den Wert mithilfe des angegebenen Typauflösungsdiensts ab. |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Füllt ein SerializationInfo Objekt mit den Daten auf, die zum Serialisieren des Zielobjekts erforderlich sind. |