ResXDataNode Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje prvek v souboru prostředků 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
- Dědičnost
-
ResXDataNode
- Atributy
- Implementuje
Příklady
Následující příklad používá metodu ResXResourceReader.GetEnumerator k získání objektu IDictionaryEnumerator , který slouží k výčtu ResXDataNode objektů v souboru .resx. Příklad obsahuje rutinu CreateResourceFile
, která vytvoří potřebný soubor prostředků XML.
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
Vzhledem k tomu, že UseResXDataNodes vlastnost je true
, hodnota IDictionaryEnumerator.Value vlastnosti je objekt, ResXDataNode nikoli hodnota prostředku. Tím se z vlastnosti zpřístupní ResXDataNode.Comment komentář k položce prostředku.
Poznámky
Důležité
Volání metod z této třídy s nedůvěryhodnými daty představuje bezpečnostní riziko. Metody z této třídy volejte pouze s důvěryhodnými daty. Další informace najdete v tématu Ověření všech vstupů.
Třída ResXDataNode podporuje reprezentaci formátovaných datových typů v souboru prostředků. Může podporovat úložiště libovolného objektu v souboru prostředků, pokud objekt podporuje serializaci a editory typů.
Objekt můžete vytvořit ResXDataNode voláním jednoho z jeho konstruktorů přetížené třídy. Potom můžete přidat položku nebo prvek prostředku do souboru prostředků voláním ResXResourceWriter.AddResource metody .
Chcete-li načíst existující ResXDataNode objekt, je nutné vytvořit výčet objektů v souboru prostředků XML vytvořením instance ResXResourceReader objektuResXDataNode, nastavením ResXResourceReader.UseResXDataNodes vlastnosti na true
a voláním ResXResourceReader.GetEnumerator metody získat enumerátor. Příklad uvádí ukázku.
Konstruktory
ResXDataNode(String, Object) |
Inicializuje novou instanci ResXDataNode třídy . |
ResXDataNode(String, Object, Func<Type,String>) |
Inicializuje novou instanci ResXDataNode třídy . |
ResXDataNode(String, ResXFileRef) |
Inicializuje novou instanci ResXDataNode třídy s odkazem na soubor prostředků. |
ResXDataNode(String, ResXFileRef, Func<Type,String>) |
Inicializuje novou instanci ResXDataNode třídy s odkazem na soubor prostředků. |
Vlastnosti
Comment |
Získá nebo nastaví libovolný komentář týkající se tohoto prostředku. |
FileRef |
Získá odkaz na soubor pro tento prostředek. |
Name |
Získá nebo nastaví název tohoto prostředku. |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetNodePosition() |
Načte pozici prostředku v souboru prostředků. |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
GetValue(AssemblyName[]) |
Načte objekt uložený tímto uzlem vyhledáním zadaných sestavení. |
GetValue(ITypeResolutionService) |
Načte objekt uložený tímto uzlem pomocí služby překladu zadaného typu. |
GetValueTypeName(AssemblyName[]) |
Načte název typu pro hodnotu prozkoumáním zadaných sestavení. |
GetValueTypeName(ITypeResolutionService) |
Načte název typu pro hodnotu pomocí zadané služby překladu typu. |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Naplní SerializationInfo objekt daty potřebnými k serializaci cílového objektu. |