Share via


ResXDataNode Kelas

Definisi

Mewakili elemen dalam file sumber daya 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
Warisan
ResXDataNode
Atribut
Penerapan

Contoh

Contoh berikut menggunakan ResXResourceReader.GetEnumerator metode untuk mendapatkan IDictionaryEnumerator objek yang digunakan untuk menghitung ResXDataNode objek dalam file .resx. Contohnya mencakup CreateResourceFile rutinitas yang membuat file sumber daya XML yang diperlukan.

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

UseResXDataNodes Karena properti adalah true, nilai IDictionaryEnumerator.Value properti adalah ResXDataNode objek daripada nilai sumber daya. Ini membuat komentar item sumber daya tersedia dari ResXDataNode.Comment properti .

Keterangan

Penting

Metode panggilan dari kelas ini dengan data yang tidak tepercaya adalah risiko keamanan. Panggil metode dari kelas ini hanya dengan data tepercaya. Untuk informasi selengkapnya, lihat Memvalidasi Semua Input.

Kelas ResXDataNode mendukung representasi jenis data yang kaya dalam file sumber daya. Ini dapat mendukung penyimpanan objek apa pun dalam file sumber daya, selama objek mendukung serialisasi dan editor jenis.

Anda dapat membuat ResXDataNode objek dengan memanggil salah satu konstruktor kelasnya yang kelebihan beban. Anda kemudian dapat menambahkan item sumber daya atau elemen ke file sumber daya dengan memanggil ResXResourceWriter.AddResource metode .

Untuk mengambil objek yang ada ResXDataNode , Anda harus menghitung ResXDataNode objek dalam file sumber daya XML dengan membuat ResXResourceReader instans objek, mengatur ResXResourceReader.UseResXDataNodes properti ke true, dan memanggil ResXResourceReader.GetEnumerator metode untuk mendapatkan enumerator. Contoh ini memberikan ilustrasi.

Konstruktor

ResXDataNode(String, Object)

Menginisialisasi instans baru kelas ResXDataNode.

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

Menginisialisasi instans baru kelas ResXDataNode.

ResXDataNode(String, ResXFileRef)

Menginisialisasi instans ResXDataNode baru kelas dengan referensi ke file sumber daya.

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

Menginisialisasi instans ResXDataNode baru kelas dengan referensi ke file sumber daya.

Properti

Comment

Mendapatkan atau menetapkan komentar arbitrer mengenai sumber daya ini.

FileRef

Mendapatkan referensi file untuk sumber daya ini.

Name

Mendapatkan atau mengatur nama sumber daya ini.

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetNodePosition()

Mengambil posisi sumber daya dalam file sumber daya.

GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
GetValue(AssemblyName[])

Mengambil objek yang disimpan oleh simpul ini dengan mencari rakitan yang ditentukan.

GetValue(ITypeResolutionService)

Mengambil objek yang disimpan oleh simpul ini dengan menggunakan layanan resolusi jenis yang ditentukan.

GetValueTypeName(AssemblyName[])

Mengambil nama jenis untuk nilai dengan memeriksa rakitan yang ditentukan.

GetValueTypeName(ITypeResolutionService)

Mengambil nama jenis untuk nilai dengan menggunakan layanan resolusi jenis yang ditentukan.

MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Mengisi objek dengan data yang SerializationInfo diperlukan untuk menserialisasikan objek target.

Berlaku untuk

Lihat juga