ResXDataNode Klass

Definition

Representerar ett element i en XML-resursfil (.resx).

public ref class ResXDataNode sealed : System::Runtime::Serialization::ISerializable
[System.Serializable]
public sealed class ResXDataNode : System.Runtime.Serialization.ISerializable
[<System.Serializable>]
type ResXDataNode = class
    interface ISerializable
Public NotInheritable Class ResXDataNode
Implements ISerializable
Arv
ResXDataNode
Attribut
Implementeringar

Exempel

I följande exempel används ResXResourceReader.GetEnumerator metoden för att hämta ett IDictionaryEnumerator objekt som används för att räkna upp objekten ResXDataNode i en .resx-fil. Exemplet innehåller en CreateResourceFile rutin som skapar nödvändig XML-resursfil.

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

Eftersom egenskapen UseResXDataNodes är trueär värdet för IDictionaryEnumerator.Value egenskapen ett ResXDataNode objekt i stället för resursvärdet. Detta gör ett resursobjekts kommentar tillgänglig från egenskapen ResXDataNode.Comment .

Kommentarer

Important

Att anropa metoder från den här klassen med ej betrodda data är en säkerhetsrisk. Anropa metoderna från den här klassen endast med betrodda data. För mer information, se Verifiera alla indata.

Klassen ResXDataNode stöder representation av omfattande datatyper i en resursfil. Det kan stödja lagring av alla objekt i en resursfil, så länge objektet stöder serialisering och typredigerare.

Du kan skapa ett ResXDataNode objekt genom att anropa en av dess överlagrade klasskonstruktorer. Du kan sedan lägga till resursobjektet eller elementet i en resursfil genom att anropa ResXResourceWriter.AddResource metoden.

Om du vill hämta ett befintligt ResXDataNode objekt måste du räkna upp objekten ResXDataNode i en XML-resursfil genom att instansiera ett ResXResourceReader objekt, ange ResXResourceReader.UseResXDataNodes egenskapen till trueoch anropa ResXResourceReader.GetEnumerator metoden för att hämta en uppräkning. Exemplet innehåller en bild.

Konstruktorer

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

Initierar en ny instans av ResXDataNode klassen.

ResXDataNode(String, Object)

Initierar en ny instans av ResXDataNode klassen.

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

Initierar en ny instans av ResXDataNode klassen med en referens till en resursfil.

ResXDataNode(String, ResXFileRef)

Initierar en ny instans av ResXDataNode klassen med en referens till en resursfil.

Egenskaper

Name Description
Comment

Hämtar eller anger en godtycklig kommentar om den här resursen.

FileRef

Hämtar filreferensen för den här resursen.

Name

Hämtar eller anger namnet på den här resursen.

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetNodePosition()

Hämtar resursens position i resursfilen.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
GetValue(AssemblyName[])

Hämtar objektet som lagras av den här noden genom att söka i de angivna sammansättningarna.

GetValue(ITypeResolutionService)

Hämtar objektet som lagras av den här noden med hjälp av den angivna typmatchningstjänsten.

GetValueTypeName(AssemblyName[])

Hämtar typnamnet för värdet genom att undersöka de angivna sammansättningarna.

GetValueTypeName(ITypeResolutionService)

Hämtar typnamnet för värdet med hjälp av den angivna typmatchningstjänsten.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Fyller i ett SerializationInfo objekt med de data som behövs för att serialisera målobjektet.

Gäller för

Se även