ResXDataNode Classe

Definição

Representa um elemento em um arquivo de recurso XML (.resx).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
Herança
ResXDataNode
Atributos
Implementações

Exemplos

O exemplo a seguir usa o método ResXResourceReader.GetEnumerator para obter um objeto IDictionaryEnumerator que é usado para enumerar os objetos ResXDataNode em um arquivo. resx.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. O exemplo inclui uma rotina de CreateResourceFile que cria o arquivo de recurso XML necessário.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

Como a propriedade UseResXDataNodes é true, o valor da propriedade IDictionaryEnumerator.Value é um objeto ResXDataNode em vez do valor do recurso.Because the UseResXDataNodes property is true, the value of the IDictionaryEnumerator.Value property is a ResXDataNode object rather than the resource value. Isso torna o comentário de um item de recurso disponível na propriedade ResXDataNode.Comment.This makes a resource item's comment available from the ResXDataNode.Comment property.

Comentários

A classe ResXDataNode dá suporte à representação de tipos de dados avançados dentro de um arquivo de recurso.The ResXDataNode class supports the representation of rich data types within a resource file. Ele pode dar suporte ao armazenamento de qualquer objeto em um arquivo de recurso, desde que o objeto dê suporte a editores de serialização e tipo.It can support the storage of any object in a resource file, so long as the object supports serialization and type editors.

Você pode criar um objeto ResXDataNode chamando um de seus construtores de classe sobrecarregados.You can create a ResXDataNode object by calling one of its overloaded class constructors. Em seguida, você pode adicionar o elemento ou o item de recurso a um arquivo de recurso chamando o método ResXResourceWriter.AddResource.You can then add the resource item or element to a resource file by calling the ResXResourceWriter.AddResource method.

Para recuperar um objeto ResXDataNode existente, você deve enumerar os objetos ResXDataNode em um arquivo de recurso XML instanciando um objeto ResXResourceReader, definindo a propriedade ResXResourceReader.UseResXDataNodes como truee chamando o método ResXResourceReader.GetEnumerator para obter um enumerador.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. O exemplo fornece uma ilustração.The example provides an illustration.

Construtores

ResXDataNode(String, Object)

Inicializa uma nova instância da classe ResXDataNode.Initializes a new instance of the ResXDataNode class.

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

Inicializa uma nova instância da classe ResXDataNode.Initializes a new instance of the ResXDataNode class.

ResXDataNode(String, ResXFileRef)

Inicializa uma nova instância da classe ResXDataNode com uma referência a um arquivo de recurso.Initializes a new instance of the ResXDataNode class with a reference to a resource file.

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

Inicializa uma nova instância da classe ResXDataNode com uma referência a um arquivo de recurso.Initializes a new instance of the ResXDataNode class with a reference to a resource file.

Propriedades

Comment

Obtém ou define um comentário arbitrário com relação a esse recurso.Gets or sets an arbitrary comment regarding this resource.

FileRef

Obtém a referência de arquivo para este recurso.Gets the file reference for this resource.

Name

Obtém ou define o nome deste recurso.Gets or sets the name of this resource.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Herdado de Object)
GetNodePosition()

Recupera a posição do recurso no arquivo do recurso.Retrieves the position of the resource in the resource file.

GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
GetValue(AssemblyName[])

Recupera o objeto armazenado por este nó pesquisando os assemblies especificados.Retrieves the object that is stored by this node by searching the specified assemblies.

GetValue(ITypeResolutionService)

Recupera o objeto armazenado por este nó usando o serviço de resolução do tipo especificado.Retrieves the object that is stored by this node by using the specified type resolution service.

GetValueTypeName(AssemblyName[])

Recupera o nome do tipo para o valor examinando os assemblies especificados.Retrieves the type name for the value by examining the specified assemblies.

GetValueTypeName(ITypeResolutionService)

Recupera o nome do tipo do valor usando o serviço de resolução do tipo especificado.Retrieves the type name for the value by using the specified type resolution service.

MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)

Implantações explícitas de interface

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Preenche um objeto SerializationInfo com os dados necessários para serializar o objeto de destino.Populates a SerializationInfo object with the data needed to serialize the target object.

Aplica-se a

Veja também