ResXDataNode Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta un elemento di un file di risorse XML (resx)
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
- Ereditarietà
-
ResXDataNode
- Attributi
- Implementazioni
Esempio
Nell'esempio seguente viene utilizzato il ResXResourceReader.GetEnumerator metodo per ottenere un IDictionaryEnumerator oggetto utilizzato per enumerare gli ResXDataNode oggetti in un file resx. Nell'esempio è inclusa 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à è true
, il valore della IDictionaryEnumerator.Value proprietà è un ResXDataNode oggetto anziché il valore della risorsa. In questo modo, il commento di un elemento della risorsa è disponibile dalla ResXDataNode.Comment proprietà .
Commenti
Importante
La chiamata a metodi da questa classe con dati non attendibili costituisce un rischio per la sicurezza. Chiamare i metodi da questa classe solo con dati attendibili. Per altre informazioni, vedere Convalidare tutti gli input.
La ResXDataNode classe supporta la rappresentazione di tipi di dati avanzati 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 ResXDataNode oggetto chiamando uno dei costruttori di classe di overload. È quindi possibile aggiungere l'elemento o l'elemento della risorsa a un file di risorse chiamando il ResXResourceWriter.AddResource metodo .
Per recuperare un oggetto esistente ResXDataNode , è necessario enumerare gli ResXDataNode oggetti in un file di risorse XML creando un'istanza di un ResXResourceReader oggetto, impostando la ResXResourceReader.UseResXDataNodes proprietà su true
e chiamando il ResXResourceReader.GetEnumerator metodo per ottenere un 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. |