Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch
Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

NestedContainer-Klasse

Stellt die Basisimplementierung für die INestedContainer-Schnittstelle bereit, die es Containern ermöglicht, über eine besitzende Komponente zu verfügen.

System.Object
  System.ComponentModel.Container
    System.ComponentModel.NestedContainer

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

[HostProtectionAttribute(SecurityAction.LinkDemand, SharedState = true)]
public class NestedContainer : Container, 
	INestedContainer, IContainer, IDisposable

Der NestedContainer-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeNestedContainerInitialisiert eine neue Instanz der NestedContainer-Klasse.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftComponentsRuft alle Komponenten im Container ab. (Von Container geerbt.)
Öffentliche EigenschaftOwnerRuft die besitzende Komponente für diesen geschachtelten Container ab.
Geschützte EigenschaftOwnerNameRuft den Namen der besitzenden Komponente ab.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeAdd(IComponent)Fügt dem Container die angegebene Component hinzu. Die Komponente hat keinen Namen. (Von Container geerbt.)
Öffentliche MethodeAdd(IComponent, String)Fügt dem Container die angegebene Component hinzu und weist ihr einen Namen zu. (Von Container geerbt.)
Geschützte MethodeCreateSiteErstellt eine Site für die Komponente im Container. (Überschreibt Container.CreateSite(IComponent, String).)
Öffentliche MethodeDispose()Gibt alle von Container verwendeten Ressourcen frei. (Von Container geerbt.)
Geschützte MethodeDispose(Boolean)Gibt die vom geschachtelten Container verwendeten Ressourcen frei. (Überschreibt Container.Dispose(Boolean).)
Öffentliche MethodeEquals(Object) Bestimmt, ob das übergegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Geschützte MethodeFinalizeGibt nicht verwaltete Ressourcen frei und führt andere Bereinigungsvorgänge durch, bevor der Container durch die Garbage Collection wieder zugänglich gemacht wird. (Von Container geerbt.)
Öffentliche MethodeGetHashCodeFungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Geschützte MethodeGetServiceRuft das Dienstobjekt des angegebenen Typs ab, sofern verfügbar. (Überschreibt Container.GetService(Type).)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte MethodeMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeRemoveEntfernt eine Komponente aus dem Container. (Von Container geerbt.)
Geschützte MethodeRemoveWithoutUnsitingEntfernt eine Komponente aus dem Container, ohne Site auf null festzulegen. (Von Container geerbt.)
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Geschützte MethodeValidateNameBestimmt, ob der Komponentenname in diesem Container eindeutig ist. (Von Container geerbt.)
Zum Seitenanfang

Die NestedContainer-Klasse ist eine einfache Implementierung der INestedContainer-Schnittstelle, die eine Komponente definiert, die logisch 0 (null) oder mehr Komponenten enthält und von einer übergeordneten Komponente besessen wird. Das Verhalten geschachtelter Container unterscheidet sich auf vielfältige Weise von dem eines Standard-Container, z. B.:

  • Eigenschaften einer Site, z. B. DesignMode und GetService, werden über die Site der besitzenden Komponente weitergeleitet.

  • Die Name-Eigenschaft der Site ist ein qualifizierter Name, der sich aus dem Namen der besitzenden Komponente gefolgt von einem Punkt (.) und dem Namen der untergeordneten Komponente zusammensetzt.

  • GetService unterstützt den INestedContainer als Dienst.

  • Wenn die besitzende Komponente verworfen wird, wird der Container ebenfalls verworfen.

Von Designern werden geschachtelte Container außerdem auf andere Weise behandelt. Ein Designerhost ist nur an einem Container interessiert: an demjenigen Container, der dem Host zugeordnet ist. Daher werden keine Ereignisse zum Hinzufügen oder Entfernen von Komponenten ausgelöst, wenn eine Komponente einem geschachtelten Container hinzugefügt oder aus diesem entfernt wird. Da Dienste in den geschachtelten Container weitergeleitet werden, werden jedoch Ereignisse für die Komponentenänderung ausgelöst, wenn eine in einem geschachtelten Container enthaltene Komponente geändert wird.

Diese Unregelmäßigkeit bei der Ereignisüberwachung wirkt sich auch auf die Rückgängigfunktion aus, die eng mit der Serialisierung verbunden ist. Das Standardmodul für die Rückgängigfunktion verwendet IReferenceService, um an Komponenten vorgenommene Änderungen nachzuverfolgen. Wenn das Rückgängigmodul über den Verweisdienst keinen Namen für eine Komponente bestimmen kann, ignoriert das Modul alle Änderungen an dieser Komponente. Dieser Dienst erkennt an enthaltenen Komponenten vorgenommene Änderungen nur dann automatisch, wenn sie in ihren Besitzern als öffentliche schreibgeschützte Eigenschaften gleichen Namens verfügbar sind. Andernfalls muss der Entwickler Ereignisse für die Komponentenänderung nach oben an den Besitzer weitergeben. Wenn z. B. die Text-Eigenschaft einer geschachtelten Komponente auf der besitzenden Komponente als Address-Eigenschaft erneut auftaucht, muss bei der Änderung der Text-Eigenschaft eine programmgesteuerte Änderung der entsprechenden Address-Eigenschaft vorgenommen werden, da das Rückgängig-Modul die Änderung andernfalls nicht nachverfolgt.

HinweisHinweis

Das auf diesen Typ oder Member angewendete HostProtectionAttribute-Attribut besitzt den folgenden Resources-Eigenschaftswert: SharedState. Das HostProtectionAttribute hat keine Auswirkungen auf Desktopanwendungen (die normalerweise durch Doppelklicken auf ein Symbol, Eingeben eines Befehls oder einer URL in einem Browser gestartet werden). Weitere Informationen finden Sie unter der HostProtectionAttribute-Klasse oder unter SQL Server-Programmierung und Hostschutzattribute.

.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Anzeigen: