Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

ContextStack-Klasse

 

Veröffentlicht: Oktober 2016

Enthält einen Stapelobjekt, das von einem Serialisierungsprogramm verwendet werden kann, um geschachtelten Serialisierungsprogrammen Informationen zur Verfügung stellen.

Namespace:   System.ComponentModel.Design.Serialization
Assembly:  System (in System.dll)

System.Object
  System.ComponentModel.Design.Serialization.ContextStack

[HostProtectionAttribute(SecurityAction.LinkDemand, SharedState = true)]
[PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust")]
public sealed class ContextStack

NameBeschreibung
System_CAPS_pubmethodContextStack()

Initialisiert eine neue Instanz der ContextStack-Klasse.

NameBeschreibung
System_CAPS_pubpropertyCurrent

Ruft das aktuelle Objekt auf dem Stapel ab.

System_CAPS_pubpropertyItem[Int32]

Ruft das Objekt im Stapel auf der angegebenen Ebene ab.

System_CAPS_pubpropertyItem[Type]

Ruft das erste Objekt auf dem Stapel, der von erbt oder den angegebenen Typ implementiert.

NameBeschreibung
System_CAPS_pubmethodAppend(Object)

Fügt ein Objekt am Ende der Stapel, anstatt Instanzfeld an die oberste Position des Stapels.

System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von „Object“.)

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion.(Geerbt von „Object“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodPop()

Entfernt das aktuelle Objekt vom Stapel und gibt dessen Wert zurück.

System_CAPS_pubmethodPush(Object)

Legt oder platziert, die das angegebene Objekt auf dem Stapel ab.

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

Einige Serialisierungsprogramme benötigen Informationen zum Kontext eines Objekts, um jeweils den Status richtig beibehalten zu können. Die ContextStack -Klasse ein Serialisierungsprogramm Daten zum Kontext eines Objekts, das serialisiert wird auf einen Stapel festlegen, sodass ein anderes Serialisierungsprogramm darauf zugreifen können. Der Wert der Context Eigenschaft wird bereitgestellt, indem eine IDesignerSerializationManager Informationen für andere Serialisierungsprogramme freizugeben.

Ein Kontextstapel ist hilfreich, da der Prozess der Serialisierung eines tief geschachtelt werden kann, und Objekte auf jeder Ebene der Schachtelung erfordern möglicherweise Kontextinformationen über den Zustand des Objekts korrekt beibehalten. Ein Serialisierungsprogramm kann ein Kontextobjekt auf den Stapel festlegen, bevor ein geschachteltes Serialisierungsprogramm aufgerufen. Jedes Objekt auf dem Stapel festlegen sollten vom Serialisierungsprogramm entfernt werden, die sie festlegen, nachdem ein Aufruf eines geschachtelten Serialisierungsprogramms zurück.

Die Objekte auf dem Stapel enthalten in der Regel Informationen über den Kontext des aktuellen Objekts, das serialisiert wird. Ein übergeordnetes Serialisierungsprogramm fügt dem Stapel zum nächsten Objekt serialisiert werden soll, ruft ein geeignetes Serialisierungsprogramm und nach Abschluss des Serialisierungsprogramms Ausführung für das Objekt entfernt, die Kontextinformationen vom Stapel. Es obliegt der Implementierung jedes einzelnen Serialisierungsprogramms, um zu bestimmen, welche Objekte auf diesem Stapel abgelegt abrufen.

Beispielsweise ein Objekt mit einer Eigenschaft mit dem Namen Enabled hat den Datentyp des Boolean. Wenn ein Serialisierungsprogramm diesen Wert in einen Datenstrom schreibt, müssen sie möglicherweise enthalten den Kontext oder Typ der Eigenschaft, die sie schreiben. Das Serialisierungsprogramm verfügt nicht über diese Informationen jedoch da es nur angewiesen ist, Schreiben der Boolean Wert. Um diese Informationen für ein Serialisierungsprogramm verfügbar zu machen, kann das übergeordnete Serialisierungsprogramm per push ein PropertyDescriptor verweist auf die Enabled Eigenschaft auf den Stapel.

Das folgende Codebeispiel veranschaulicht die Verwendung einer ContextStack abgelegt und anschließend entfernt 10 Werte.

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() );
        }
    }
}

NamedPermissionSet

for full access to system resources. Demand values: F:System.Security.Permissions.SecurityAction.LinkDemand, F:System.Security.Permissions.SecurityAction.InheritanceDemand. Associated state:

.NET Framework
Verfügbar seit 1.1

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: