Freigeben über


Erstellen und Verwenden von Komponenten in Visual Basic

Eine Komponente ist eine Klasse, die die System.ComponentModel.IComponent Schnittstelle implementiert oder direkt oder indirekt von einer Klasse abgeleitet wird, die IComponent implementiert. Eine .NET-Komponente ist ein wiederverwendbares Objekt, kann mit anderen Objekten interagieren und bietet Kontrolle über externe Ressourcen und Entwurfszeitunterstützung.

Ein wichtiges Feature von Komponenten besteht darin, dass sie entwurfsfähig sind, was bedeutet, dass eine Klasse, die eine Komponente ist, in der integrierten Entwicklungsumgebung von Visual Studio verwendet werden kann. Eine Komponente kann der Toolbox hinzugefügt, auf ein Formular gezogen und abgelegt und auf einer Entwurfsoberfläche bearbeitet werden. Die Basisentwurfszeitunterstützung für Komponenten ist in .NET integriert. Ein Komponentenentwickler muss keine zusätzlichen Aufgaben ausführen, um die Grundlegenden Entwurfszeitfunktionen nutzen zu können.

Ein Steuerelement ähnelt einer Komponente, da beide entwurfsfähig sind. Ein Steuerelement stellt jedoch eine Benutzeroberfläche bereit, während eine Komponente nicht. Ein Steuerelement muss von einer der Basissteuerelementklassen abgeleitet werden: Control oder Control.

Wann eine Komponente erstellt werden soll

Wenn Ihre Klasse auf einer Entwurfsoberfläche (z. B. dem Windows Forms- oder Web Forms-Designer) verwendet wird, aber keine Benutzeroberfläche aufweist, sollte sie eine Komponente sein und IComponent implementieren oder von einer Klasse abgeleitet sein, die IComponent direkt oder indirekt implementiert.

Die Klassen Component und MarshalByValueComponent sind die Basisimplementierung der IComponent Schnittstelle. Der Hauptunterschied zwischen diesen Klassen besteht darin, dass die Component Klasse über Referenz serialisiert wird, während die IComponent Klasse über Wert serialisiert wird. Die folgende Liste enthält allgemeine Richtlinien für Implementierungen.

  • Wenn Ihre Komponente nach Verweis gemarshallt werden muss, leiten Sie von Component ab.

  • Wenn Ihre Komponente nach Wert gemarshallt werden muss, leiten Sie von MarshalByValueComponent ab.

  • Wenn die Komponente aufgrund einfacher Vererbung nicht von einer der Basisimplementierungen abgeleitet werden kann, implementieren Sie IComponent.

Komponentenklassen

Der System.ComponentModel Namespace stellt Klassen bereit, die zum Implementieren des Laufzeit- und Entwurfszeitverhaltens von Komponenten und Steuerelementen verwendet werden. Dieser Namespace enthält die Basisklassen und Schnittstellen für die Implementierung von Attributen und Typkonvertern, die Bindung an Datenquellen und Lizenzierungskomponenten.

Die Kernkomponentenklassen sind:

Einige der Klassen, die für die Komponentenlizenzierung verwendet werden, sind:

  • License. Die abstrakte Basisklasse für alle Lizenzen. Eine Lizenz wird einer bestimmten Instanz einer Komponente gewährt.

  • LicenseManager. Stellt Eigenschaften und Methoden bereit, um eine Lizenz zu einer Komponente hinzuzufügen und eine LicenseProvider zu verwalten.

  • LicenseProvider. Die abstrakte Basisklasse für die Implementierung eines Lizenzanbieters.

  • LicenseProviderAttribute. Gibt die Klasse LicenseProvider an, die mit einer Klasse verwendet werden sollen.

Klassen, die häufig zum Beschreiben und Beibehalten von Komponenten verwendet werden.

  • TypeDescriptor. Stellt Informationen zu den Merkmalen einer Komponente bereit, z. B. die Attribute, Eigenschaften und Ereignisse.

  • EventDescriptor. Stellt Informationen zu einem Ereignis bereit.

  • PropertyDescriptor. Gibt Informationen über eine Eigenschaft an.

Problembehandlung beim Erstellen von Komponenten und Steuerelementen
Erläutert, wie häufige Probleme behoben werden.

Siehe auch