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 열거 하는 데 사용 되는 개체를 ResXDataNode .resx 파일에는 개체입니다.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

때문에 UseResXDataNodes 속성은 true, 값을 IDictionaryEnumerator.Value 속성은를 ResXDataNode 리소스의 값이 아닌 개체.Because 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. 개체가 serialization 및 형식 편집기를 지원하는 한 리소스 파일에 있는 개체의 스토리지를 지원할 수 있습니다.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 인스턴스화하여 XML 리소스 파일에서 개체를 ResXResourceReader 개체를 설정 합니다 ResXResourceReader.UseResXDataNodes 속성을 true, 호출 및는 ResXResourceReader.GetEnumerator 메서드를 열거자를 가져옵니다.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[])

지정된 어셈블리를 검색하여 값에 대한 type name을 검색합니다.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()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

대상 개체를 serialize하는 데 필요한 데이터로 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.

적용 대상

추가 정보