다음을 통해 공유


ContextStack 클래스

정의

정보를 중첩된 serializer에 사용할 수 있게 할 serializer가 사용하는 스택 개체를 제공합니다.

public ref class ContextStack sealed
public sealed class ContextStack
type ContextStack = class
Public NotInheritable Class ContextStack
상속
ContextStack

예제

다음 코드 예제에서는 ContextStack 를 푸시한 다음 10 개의 값을 제거 합니다.

#using <System.Windows.Forms.dll>
#using <System.dll>

using namespace System;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::ComponentModel::Design::Serialization;
using namespace System::Windows::Forms;

int main()
{
   // Create a ContextStack.
   ContextStack^ stack = gcnew ContextStack;
   
   // Push ten items on to the stack and output the value of each.
   for ( int number = 0; number < 10; number++ )
   {
      Console::WriteLine( "Value pushed to stack: {0}", number );
      stack->Push( number );
   }
   
   // Pop each item off the stack.
   Object^ item = nullptr;
   while ( (item = stack->Pop()) != 0 )
      Console::WriteLine( "Value popped from stack: {0}", item );
}
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization;
using System.Windows.Forms;

namespace ContextStackExample
{
    class ContextStackExample
    {
        [STAThread]
        static void Main(string[] args)
        {            
            // Create a ContextStack.
            ContextStack stack = new ContextStack();
            
            // Push ten items on to the stack and output the value of each.
            for( int number = 0; number < 10; number ++ )
            {
                Console.WriteLine( "Value pushed to stack: "+number.ToString() );
                stack.Push( number );
            }

            // Pop each item off the stack.
            object item = null;
            while( (item = stack.Pop()) != null )
                Console.WriteLine( "Value popped from stack: "+item.ToString() );
        }
    }
}
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.ComponentModel.Design.Serialization

Module ContextStackExample

    Sub Main()
        ' Create a ContextStack.
        Dim stack As New ContextStack

        ' Push ten items on to the stack and output the value of each.
        Dim number As Integer
        For number = 0 To 9
            Console.WriteLine(("Value pushed to stack: " + number.ToString()))
            stack.Push(number)
        Next number

        ' Pop each item off the stack.        
        Dim item As Object = stack.Pop()
        While item IsNot Nothing
            Console.WriteLine(("Value popped from stack: " + item.ToString()))
            item = stack.Pop()
        End While
    End Sub

End Module

설명

일부 serializer는 상태를 올바로 유지하기 위해 개체의 컨텍스트 정보가 필요합니다. ContextStack 클래스를 사용 하면 serializer가 다른 serializer 액세스할 수 있는 스택에 serialize 되는 개체의 컨텍스트에 대 한 데이터를 설정 합니다. 값을 Context 에서 제공 하는 속성은 IDesignerSerializationManager 일부 serializer 사용 하 여의 정보를 공유 하 합니다.

컨텍스트 스택을 디자인 문서를 직렬화 하는 작업의 프로세스는 긴밀 하 게 중첩할 수 및 각 중첩 수준에 있는 개체는 개체의 상태를 올바로 유지 하기 위해 컨텍스트 정보를 필요로 하기 때문에 유용 합니다. 직렬 변환기를 중첩 된 serializer를 호출 하기 전에 스택에 컨텍스트 개체를 설정할 수 있습니다. 스택의로 설정 하는 각 개체는 중첩 된 serializer에 대 한 호출에서 반환 된 후이 설정 하는 serializer에 의해 제거 되어야 합니다.

일반적으로 스택에 개체가 serialize 되는 현재 개체의 컨텍스트에 대 한 정보를 포함 합니다. 부모 serializer 스택에 serialize 다음 개체에 대 한 컨텍스트 정보를 추가 경우 적절 한 serializer를 호출 하며, serializer가 개체의 실행을 마치면 스택에서 컨텍스트 정보를 제거 합니다. 어떤 개체가 스택에 푸시되 지 확인 하려면 각 serializer의 구현에 따라 것입니다.

예를 들어, 개체 속성을 사용 하 여 이름이 Enabled 의 데이터 형식이 Boolean합니다. Serializer는 데이터 스트림에이 값을 씁니다, 컨텍스트 또는 작성 하면 속성의 형식을 포함 하도록 해야 합니다. 그러나 Serializer이이 정보가 없는, 쓸 지시만 있으므로 Boolean 값입니다. 직렬 변환기에이 정보를 제공 하려면 부모 serializer를 푸시할 수는 PropertyDescriptor 가리키는 Enabled 컨텍스트 스택에 속성입니다.

생성자

ContextStack()

ContextStack 클래스의 새 인스턴스를 초기화합니다.

속성

Current

현재 스택에 있는 개체를 가져옵니다.

Item[Int32]

지정된 수준에 있는 스택의 개체를 가져옵니다.

Item[Type]

상속하거나 지정된 형식을 구현하는 스택의 첫 번째 개체를 가져옵니다.

메서드

Append(Object)

개체를 스택의 맨 위에 푸시하지 않고 스택의 맨 아래에 추가합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
Pop()

스택에서 현재 개체를 제거하고 이 개체의 값을 반환합니다.

Push(Object)

지정된 개체를 스택에 푸시하거나 저장합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상

추가 정보