Remarque
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.
Le modèle d’application Windows Communication Foundation (WCF) est conçu pour résoudre la plus grande partie des exigences de communication de n’importe quelle application distribuée. Toutefois, il existe toujours des scénarios que le modèle d’application par défaut et les implémentations fournies par le système ne prennent pas en charge. Le modèle d’extensibilité WCF est destiné à prendre en charge des scénarios personnalisés en vous permettant de modifier le comportement du système à chaque niveau, même au point de remplacer l’ensemble du modèle d’application. Cette rubrique décrit les différentes zones d’extension et pointe vers plus d’informations sur chacun d’eux.
Zones à étendre
Vous pouvez étendre :
Runtime de l’application. Cela permet d'étendre la distribution et le traitement des messages pour l'application. Cette zone inclut également l’extension du système de sécurité, du système de métadonnées, du système de sérialisation et des liaisons et éléments de liaison qui connectent l’application au système de canal sous-jacent.
Le canal et le runtime du canal. Cela étend le système qui fonctionne au niveau du message, en fournissant la prise en charge du protocole, du transport et de l’encodage.
Le runtime de l'hôte. Cela étend la relation du domaine d’application d’hébergement au canal et au runtime d’application.
Extension du runtime d’application
Dans les applications WCF, il existe une distinction entre les messages destinés à un canal correspondant et les messages destinés à l’application elle-même. Les messages de canal prennent en charge certaines fonctionnalités liées au canal, telles que l’établissement d’une conversation sécurisée ou l’établissement d’une session fiable. Ces messages ne sont pas disponibles pour le runtime d’application ; ils sont traités avant que la couche application ne soit impliquée.
Les messages d’application contiennent des données destinées à une opération cliente ou de service que vous ou votre client avez créée. Ces messages sont disponibles pour le système d’extension au niveau de l’application sous forme de message ou d’objet, en fonction de vos besoins.
Tous les messages passent par le système de canal ; seuls les messages d’application sont transmis du système de canal à l’application. Pour créer de nouvelles fonctionnalités au niveau du canal, vous devez étendre le système de canal. Pour créer de nouvelles fonctionnalités de niveau application, vous devez étendre le runtime du service ou du client (respectivement, répartiteurs et fabrications de canaux). Pour plus d’informations sur l’extension du runtime d’application, consultez Extension de ServiceHost et de la couche de modèle de service.
Extension de la sécurité
Pour créer des mécanismes de sécurité personnalisés tels que des jetons et des informations d’identification, vous devez étendre le système de sécurité. Pour plus d’informations, consultez Extension de la sécurité.
Extension des métadonnées
Pour exposer vos métadonnées différemment de celles par défaut, vous devez étendre le système de métadonnées. Pour plus d’informations, consultez Extension du système de métadonnées.
Extension de la sérialisation
Pour créer des encodeurs personnalisés, fournissez des substitutions de données ou d’autres tâches impliquant la personnalisation des données transférées, vous devez étendre le système de sérialisation. Pour plus d’informations, consultez Extension des encodeurs et des sérialiseurs.
Extension de liaisons
Pour associer des canaux de transport ou de protocole à la couche Application, vous devez étendre le système de liaison. Pour plus d’informations, consultez Extension de liaisons.
Extension du système de canaux
Pour créer des canaux qui prennent en charge les transports personnalisés ou les fonctionnalités de protocole, consultez Extension de la couche canal.
Extension du système d’hébergement de service
Pour modifier le modèle d’application à l’échelle du service, vous devez étendre System.ServiceModel.ServiceHostBase la classe. Pour plus d’informations, consultez Extension de ServiceHost et de la couche de modèle de service.
Pour modifier la relation entre le domaine d’application d’hébergement et l’hôte de service, vous devez étendre la System.ServiceModel.Activation.ServiceHostFactory classe. Pour plus d’informations, consultez Extension de l’hébergement à l’aide de ServiceHostFactory.