Teilen über


Einführung in die Erweiterbarkeit

Das Windows Communication Foundation (WCF)-Anwendungsmodell wurde entwickelt, um den größeren Teil der Kommunikationsanforderungen jeder verteilten Anwendung zu lösen. Es gibt jedoch immer Szenarien, die vom Standardanwendungsmodell und von System bereitgestellten Implementierungen nicht unterstützt werden. Das WCF-Erweiterbarkeitsmodell soll benutzerdefinierte Szenarien unterstützen, indem Sie das Systemverhalten auf jeder Ebene ändern können, auch um das gesamte Anwendungsmodell zu ersetzen. In diesem Thema werden die verschiedenen Erweiterungsbereiche beschrieben und auf weitere Informationen zu den einzelnen Themen verweist.

Zu erweiternde Bereiche

Folgende Werte können erweitert werden:

  • Die Anwendungslaufzeit. Dies erweitert die Verteiler- und Verarbeitung von Nachrichten für die Anwendung. Dieser Bereich umfasst auch die Erweiterung des Sicherheitssystems, des Metadatensystems, des Serialisierungssystems sowie der Bindungen und Bindungselemente, die die Anwendung mit dem zugrunde liegenden Kanalsystem verbinden.

  • Der Kanal und die Laufzeit des Kanals. Dadurch wird das System erweitert, das auf Nachrichtenebene funktioniert, und bietet Unterstützung für Protokoll, Transport und Codierung.

  • Die Hostlaufzeit. Dadurch wird die Beziehung der Hostanwendungsdomäne auf den Kanal und die Anwendungslaufzeit erweitert.

Erweitern der Anwendungslaufzeit

In WCF-Anwendungen gibt es einen Unterschied zwischen Nachrichten, die für einen entsprechenden Kanal und Nachrichten bestimmt sind, die für die Anwendung selbst bestimmt sind. Kanalnachrichten unterstützen einige kanalbezogene Funktionen, z. B. das Einrichten einer sicheren Unterhaltung oder das Einrichten einer zuverlässigen Sitzung. Diese Meldungen sind für die Anwendungslaufzeit nicht verfügbar; sie werden verarbeitet, bevor die Anwendungsschicht einbezogen wird.

Anwendungsmeldungen enthalten Daten, die für einen Client- oder Dienstvorgang bestimmt sind, den Sie oder Ihren Kunden erstellt haben. Diese Nachrichten sind je nach Ihren Anforderungen für das Erweiterungssystem auf Anwendungsebene in Nachrichten- oder Objektform verfügbar.

Alle Nachrichten durchlaufen das Kanalsystem; Nur Anwendungsnachrichten werden vom Kanalsystem an die Anwendung übergeben. Um neue Funktionen auf Kanalebene zu erstellen, muss das Kanalsystem erweitert werden. Um neue Funktionen auf Anwendungsebene zu erstellen, müssen Sie die Dienst- oder Client-Runtime (Dispatcher bzw. Kanalfabriken) erweitern. Weitere Informationen zum Erweitern der Anwendungslaufzeit finden Sie unter "Erweitern von ServiceHost" und "Service Model Layer".

Erweitern der Sicherheit

Um benutzerdefinierte Sicherheitsmechanismen wie Token und Anmeldeinformationen zu erstellen, müssen Sie das Sicherheitssystem erweitern. Weitere Informationen finden Sie unter Erweitern der Sicherheit.

Erweitern von Metadaten

Um Ihre Metadaten anders als die Standardeinstellung verfügbar zu machen, müssen Sie das Metadatensystem erweitern. Weitere Informationen finden Sie unter Erweitern des Metadatensystems.

Erweitern der Serialisierung

Um benutzerdefinierte Encoder zu erstellen, Datenüberschriften bereitzustellen oder andere Arbeiten, die die Anpassung übertragener Daten betreffen, müssen Sie das Serialisierungssystem erweitern. Weitere Informationen finden Sie unter Erweitern von Encodern und Serialisierern.

Erweitern von Bindungen

Um Transport- oder Protokollkanäle mit der Anwendungsschicht zu verknüpfen, müssen Sie das Bindungssystem erweitern. Weitere Informationen finden Sie unter Erweitern von Bindungen.

Erweitern des Kanalsystems

Informationen zum Erstellen von Kanälen, die benutzerdefinierte Transporte oder Protokollfunktionen unterstützen, finden Sie unter Erweitern der Kanalschicht.

Erweitern des Diensthostingsystems

Um das dienstweite Anwendungsmodell zu ändern, müssen Sie die Klasse erweitern System.ServiceModel.ServiceHostBase . Weitere Informationen finden Sie unter "Erweitern von ServiceHost" und "Service Model Layer".

Um die Beziehung zwischen der Hostanwendungsdomäne und dem Diensthost zu ändern, müssen Sie die System.ServiceModel.Activation.ServiceHostFactory Klasse erweitern. Weitere Informationen finden Sie unter Erweitern des Hostings mithilfe von ServiceHostFactory.

Siehe auch