ResXDataNode Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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. |