Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un composant est une classe qui implémente l’interface System.ComponentModel.IComponent ou qui dérive directement ou indirectement d’une classe qui implémente IComponent. Un composant .NET est un objet réutilisable, peut interagir avec d’autres objets et fournit un contrôle sur les ressources externes et la prise en charge au moment du design.
Une fonctionnalité importante des composants est qu’ils sont concevables, ce qui signifie qu’une classe qui est un composant peut être utilisée dans l’environnement de développement intégré Visual Studio. Un composant peut être ajouté à la boîte à outils, déplacé et déposé sur un formulaire et manipulé sur une surface de conception. La prise en charge au moment de la conception de base pour les composants est intégrée à .NET. Un développeur de composants n’a pas à effectuer de travail supplémentaire pour tirer parti des fonctionnalités au moment du design de base.
Un contrôle est similaire à un composant, car les deux sont concevables. Toutefois, un contrôle fournit une interface utilisateur, tandis qu’un composant ne le fait pas. Un contrôle doit dériver de l’une des classes de contrôle de base : Control ou Control.
Quand créer un composant
Si votre classe sera utilisée sur une surface de conception (par exemple, Windows Forms ou Web Forms Designer) mais n’a aucune interface utilisateur, elle doit être un composant et implémenter IComponent, ou dériver d’une classe qui implémente IComponentdirectement ou indirectement.
Les classes Component et MarshalByValueComponent sont des implémentations de base de l'interface IComponent. La principale différence entre ces classes est que la Component classe est marshalée par référence, tandis qu’elle IComponent est marshalée par valeur. La liste suivante fournit des instructions générales pour les implémenteurs.
Si votre composant doit être marshalé par référence, dérivez de Component.
Si votre composant doit être marshalé par valeur, dérivez de MarshalByValueComponent.
Si votre composant ne peut pas dériver de l’une des implémentations de base en raison d’un héritage unique, implémentez IComponent.
Classes de composants
L’espace System.ComponentModel de noms fournit des classes utilisées pour implémenter le comportement au moment de l’exécution et au moment du design des composants et des contrôles. Cet espace de noms inclut les classes de base et les interfaces pour l’implémentation d’attributs et de convertisseurs de types, la liaison aux sources de données et les composants de licence.
Les classes de composants principales sont les suivantes :
Component. Implémentation de base pour l’interface IComponent . Cette classe active le partage d’objets entre les applications.
MarshalByValueComponent. Implémentation de base pour l’interface IComponent .
Container. Implémentation de base de l’interface IContainer . Cette classe encapsule zéro ou plusieurs composants.
Voici quelques-unes des classes utilisées pour la gestion des licences de composants :
License. Classe de base abstraite pour toutes les licences. Une licence est accordée à une instance spécifique d’un composant.
LicenseManager. Fournit des propriétés et des méthodes permettant d’ajouter une licence à un composant et de gérer un LicenseProvider.
LicenseProvider. Classe de base abstraite pour l’implémentation d’un fournisseur de licences.
LicenseProviderAttribute. Spécifie la LicenseProvider classe à utiliser avec une classe.
Classes couramment utilisées pour décrire et conserver des composants.
TypeDescriptor. Fournit des informations sur les caractéristiques d’un composant, telles que ses attributs, ses propriétés et ses événements.
EventDescriptor. Fournit des informations sur un événement.
PropertyDescriptor. Fournit des informations sur une propriété.
Sections connexes
Dépannage de la création de contrôles et de composants
Explique comment résoudre les problèmes courants.