ResXDataNode Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa un elemento en un archivo de recursos 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
- Herencia
-
ResXDataNode
- Atributos
- Implementaciones
Ejemplos
En el ejemplo siguiente se usa el ResXResourceReader.GetEnumerator método para obtener un IDictionaryEnumerator objeto que se usa para enumerar los ResXDataNode objetos de un archivo .resx. En el ejemplo se incluye una CreateResourceFile
rutina que crea el archivo de recursos XML necesario.
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
Dado que la UseResXDataNodes propiedad es true
, el valor de la IDictionaryEnumerator.Value propiedad es un ResXDataNode objeto en lugar del valor del recurso. Esto hace que el comentario de un elemento de recurso esté disponible en la ResXDataNode.Comment propiedad .
Comentarios
Importante
Llamar a métodos de esta clase con datos que no son de confianza supone un riesgo de seguridad. Llame a los métodos de esta clase solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.
La ResXDataNode clase admite la representación de tipos de datos enriquecidos dentro de un archivo de recursos. Puede admitir el almacenamiento de cualquier objeto en un archivo de recursos, siempre y cuando el objeto admita editores de tipos y serialización.
Puede crear un ResXDataNode objeto llamando a uno de sus constructores de clase sobrecargados. Después, puede agregar el elemento de recurso o elemento a un archivo de recursos llamando al ResXResourceWriter.AddResource método .
Para recuperar un objeto existente ResXDataNode , debe enumerar los ResXDataNode objetos de un archivo de recursos XML creando una instancia de un ResXResourceReader objeto, estableciendo la ResXResourceReader.UseResXDataNodes propiedad true
en y llamando al ResXResourceReader.GetEnumerator método para obtener un enumerador. En este ejemplo se ilustra.
Constructores
ResXDataNode(String, Object) |
Inicializa una nueva instancia de la clase ResXDataNode. |
ResXDataNode(String, Object, Func<Type,String>) |
Inicializa una nueva instancia de la clase ResXDataNode. |
ResXDataNode(String, ResXFileRef) |
Inicializa una nueva instancia de la clase ResXDataNode con una referencia a un archivo de recursos. |
ResXDataNode(String, ResXFileRef, Func<Type,String>) |
Inicializa una nueva instancia de la clase ResXDataNode con una referencia a un archivo de recursos. |
Propiedades
Comment |
Obtiene o establece un comentario arbitrario con respecto a este recurso. |
FileRef |
Obtiene la referencia de archivo para este recurso. |
Name |
Obtiene o establece el nombre de este recurso. |
Métodos
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetNodePosition() |
Recupera la posición del recurso en el archivo de recursos. |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
GetValue(AssemblyName[]) |
Recupera el objeto almacenado por este nodo buscando los ensamblados especificados. |
GetValue(ITypeResolutionService) |
Recupera el objeto almacenado por este nodo mediante el servicio de resolución de tipos especificado. |
GetValueTypeName(AssemblyName[]) |
Recupera el nombre de tipo del valor examinando los ensamblados especificados. |
GetValueTypeName(ITypeResolutionService) |
Recupera el nombre de tipo del valor mediante el servicio de resolución de tipos especificado. |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Rellena un objeto SerializationInfo con los datos necesarios para serializar el objeto de destino. |