ResXDataNode Klasa

Definicja

Reprezentuje element w pliku zasobów 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
[<System.Serializable>]
type ResXDataNode = class
    interface ISerializable
Public NotInheritable Class ResXDataNode
Implements ISerializable
Dziedziczenie
ResXDataNode
Atrybuty
Implementuje

Przykłady

W poniższym przykładzie użyto ResXResourceReader.GetEnumerator metody, aby uzyskać IDictionaryEnumerator obiekt, który jest używany do wyliczenia ResXDataNode obiektów w pliku 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. Przykład zawiera CreateResourceFile procedurę, która tworzy wymagany plik zasobów XML.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

Ponieważ UseResXDataNodes Właściwość jest true , wartość IDictionaryEnumerator.Value właściwości jest ResXDataNode obiektem, a nie wartością zasobu.Because the UseResXDataNodes property is true, the value of the IDictionaryEnumerator.Value property is a ResXDataNode object rather than the resource value. Powoduje to udostępnienie komentarza elementu zasobu z ResXDataNode.Comment właściwości.This makes a resource item's comment available from the ResXDataNode.Comment property.

Uwagi

ResXDataNodeKlasa obsługuje reprezentację rozbudowanych typów danych w pliku zasobów.The ResXDataNode class supports the representation of rich data types within a resource file. Może obsługiwać magazyn dowolnego obiektu w pliku zasobów, tak długo, jak obiekt obsługuje serializacji i edytory typów.It can support the storage of any object in a resource file, so long as the object supports serialization and type editors.

Można utworzyć ResXDataNode obiekt, wywołując jeden z jego przeciążonych konstruktorów klas.You can create a ResXDataNode object by calling one of its overloaded class constructors. Następnie można dodać element zasobu lub element do pliku zasobów, wywołując ResXResourceWriter.AddResource metodę.You can then add the resource item or element to a resource file by calling the ResXResourceWriter.AddResource method.

Aby pobrać istniejący ResXDataNode obiekt, należy wyliczyć ResXDataNode obiekty w pliku zasobów XML przez utworzenie wystąpienia ResXResourceReader obiektu, ustawienie ResXResourceReader.UseResXDataNodes właściwości na true i wywołanie ResXResourceReader.GetEnumerator metody w celu uzyskania modułu wyliczającego.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. Przykład stanowi ilustrację.The example provides an illustration.

Konstruktory

ResXDataNode(String, Object)

Inicjuje nowe wystąpienie klasy ResXDataNode.Initializes a new instance of the ResXDataNode class.

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

Inicjuje nowe wystąpienie klasy ResXDataNode.Initializes a new instance of the ResXDataNode class.

ResXDataNode(String, ResXFileRef)

Inicjuje nowe wystąpienie ResXDataNode klasy z odwołaniem do pliku zasobów.Initializes a new instance of the ResXDataNode class with a reference to a resource file.

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

Inicjuje nowe wystąpienie ResXDataNode klasy z odwołaniem do pliku zasobów.Initializes a new instance of the ResXDataNode class with a reference to a resource file.

Właściwości

Comment

Pobiera lub ustawia arbitralny komentarz dotyczący tego zasobu.Gets or sets an arbitrary comment regarding this resource.

FileRef

Pobiera odwołanie do pliku dla tego zasobu.Gets the file reference for this resource.

Name

Pobiera lub ustawia nazwę tego zasobu.Gets or sets the name of this resource.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetNodePosition()

Pobiera pozycję zasobu w pliku zasobów.Retrieves the position of the resource in the resource file.

GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
GetValue(AssemblyName[])

Pobiera obiekt, który jest przechowywany przez ten węzeł przez przeszukiwanie określonych zestawów.Retrieves the object that is stored by this node by searching the specified assemblies.

GetValue(ITypeResolutionService)

Pobiera obiekt przechowywany przez ten węzeł przy użyciu określonej usługi rozpoznawania typów.Retrieves the object that is stored by this node by using the specified type resolution service.

GetValueTypeName(AssemblyName[])

Pobiera nazwę typu dla wartości poprzez sprawdzenie określonych zestawów.Retrieves the type name for the value by examining the specified assemblies.

GetValueTypeName(ITypeResolutionService)

Pobiera nazwę typu dla wartości przy użyciu określonej usługi rozpoznawania typów.Retrieves the type name for the value by using the specified type resolution service.

MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Jawne implementacje interfejsu

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Wypełnia SerializationInfo obiekt danymi wymaganymi do serializacji obiektu docelowego.Populates a SerializationInfo object with the data needed to serialize the target object.

Dotyczy