ResXDataNode クラス

定義

XML リソース (.resx) ファイル内の要素を表します。Represents an element in an XML resource (.resx) file.

public ref class ResXDataNode sealed : System::Runtime::Serialization::ISerializable
[System.Serializable]
public sealed class ResXDataNode : System.Runtime.Serialization.ISerializable
type ResXDataNode = class
    interface ISerializable
Public NotInheritable Class ResXDataNode
Implements ISerializable
継承
ResXDataNode
属性
実装

次の例ではResXResourceReader.GetEnumerator 、メソッドを使用IDictionaryEnumeratorして、.resx ファイル内のResXDataNodeオブジェクトを列挙するために使用されるオブジェクトを取得します。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. この例にはCreateResourceFile 、必要な 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

プロパティがtrueであるため、 ResXDataNodeプロパティの値はリソース値ではなく、オブジェクトになります。 IDictionaryEnumerator.Value UseResXDataNodesBecause the UseResXDataNodes property is true, the value of the IDictionaryEnumerator.Value property is a ResXDataNode object rather than the resource value. これにより、 ResXDataNode.Commentリソース項目のコメントをプロパティから使用できるようになります。This makes a resource item's comment available from the ResXDataNode.Comment property.

注釈

クラスResXDataNodeは、リソースファイル内の豊富なデータ型の表現をサポートします。The ResXDataNode class supports the representation of rich data types within a resource file. オブジェクトがシリアル化と型エディターをサポートしている限り、リソースファイル内の任意のオブジェクトの格納をサポートできます。It can support the storage of any object in a resource file, so long as the object supports serialization and type editors.

オブジェクトをResXDataNode作成するには、オーバーロードされたクラスコンストラクターのいずれかを呼び出します。You can create a ResXDataNode object by calling one of its overloaded class constructors. その後、メソッドをResXResourceWriter.AddResource呼び出して、リソース項目または要素をリソースファイルに追加できます。You can then add the resource item or element to a resource file by calling the ResXResourceWriter.AddResource method.

既存ResXDataNodeのオブジェクトを取得するには、オブジェクトResXDataNode ResXResourceReader.UseResXDataNodesResXResourceReaderインスタンス化し、プロパティをにtrue ResXResourceReader.GetEnumerator設定して、メソッドを呼び出すことによって、XML リソースファイル内のオブジェクトを列挙する必要があります。列挙子を取得します。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. 具体的な例を次に示します。The example provides an illustration.

コンストラクター

ResXDataNode(String, Object)

ResXDataNode クラスの新しいインスタンスを初期化します。Initializes a new instance of the ResXDataNode class.

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

ResXDataNode クラスの新しいインスタンスを初期化します。Initializes a new instance of the ResXDataNode class.

ResXDataNode(String, ResXFileRef)

リソース ファイルへの参照を使用して、ResXDataNode クラスの新しいインスタンスを初期化します。Initializes a new instance of the ResXDataNode class with a reference to a resource file.

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

リソース ファイルへの参照を使用して、ResXDataNode クラスの新しいインスタンスを初期化します。Initializes a new instance of the ResXDataNode class with a reference to a resource file.

プロパティ

Comment

このリソースに関する任意のコメントを取得または設定します。Gets or sets an arbitrary comment regarding this resource.

FileRef

このリソースのファイル参照を取得します。Gets the file reference for this resource.

Name

このリソースの名前を取得または設定します。Gets or sets the name of this resource.

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetNodePosition()

リソース ファイル中のリソースの位置を取得します。Retrieves the position of the resource in the resource file.

GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
GetValue(AssemblyName[])

指定したアセンブリの検索により、このノードに格納されているオブジェクトを取得します。Retrieves the object that is stored by this node by searching the specified assemblies.

GetValue(ITypeResolutionService)

指定した型解決サービスを使用して、このノードに格納されているオブジェクトを取得します。Retrieves the object that is stored by this node by using the specified type resolution service.

GetValueTypeName(AssemblyName[])

指定されたアセンブリを調べることによって、値の型名を取得します。Retrieves the type name for the value by examining the specified assemblies.

GetValueTypeName(ITypeResolutionService)

指定された型解決サービスを使用して、値の型名を取得します。Retrieves the type name for the value by using the specified type resolution service.

MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)

明示的なインターフェイスの実装

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

SerializationInfo オブジェクトに、対象オブジェクトをシリアル化するために必要なデータを設定します。Populates a SerializationInfo object with the data needed to serialize the target object.

セキュリティ

LinkDemand
直前の呼び出し元に対する完全な信頼の場合。for full trust for the immediate caller. この型は、部分的に信頼されているコードでは使用できません。This type cannot be used by partially trusted code.

適用対象

こちらもご覧ください