Einführung in die ErweiterbarkeitIntroduction to Extensibility

Das Anwendungsmodell für Windows Communication Foundation (WCF) Dient zur-Anwendungsmodell die kommunikationsanforderungen aller beliebigen verteilten Anwendungen zu beheben.The Windows Communication Foundation (WCF) application model is designed to solve the greater part of the communication requirements of any distributed application. Es treten jedoch häufig Szenarien auf, die das Standardanwendungsmodell und vom System bereitgestellte Implementierungen nicht unterstützen.But there are always scenarios that the default application model and system-provided implementations do not support. Die WCF-Erweiterbarkeitsmodell werden benutzerdefinierte Szenarien unterstützt, da Sie auf das Systemverhalten auf jeder Ebene bis zur Ersatz des gesamten Anwendungsmodells selbst zu ändern.The WCF extensibility model is intended to support custom scenarios by enabling you to modify system behavior at every level, even to the point of replacing the entire application model. Dieses Thema gliedert die verschiedenen Bereiche der Erweiterung und verweist auf weitere Informationen zu jeder Erweiterung.This topic outlines the various areas of extension and points to more information about each.

Zu erweiternde BereicheAreas to Extend

Folgende Werte können erweitert werden:You can extend:

  • Die Anwendungslaufzeit.The application runtime. Dies erweitert das Zustellen und Verarbeiten von Nachrichten für die Anwendung.This extends the dispatching and the processing of messages for the application. Dieser Bereich beinhaltet auch die Erweiterung von Sicherheitssystem, Metadatensystem, Serialisierungssystem und der Bindungen und Bindungselemente, die die Anwendung mit dem zugrunde liegenden Kanalsystem verbinden.This area also includes extending the security system, the metadata system, the serialization system, and the bindings and binding elements that connect the application with the underlying channel system.

  • Der Kanal und die Kanallaufzeit.The channel and channel runtime. Dadurch wird das auf Nachrichtenebene funktionierende System erweitert und Protokoll-, Transport- und Codierungsunterstützung bereitgestellt.This extends the system that functions at the message level, providing protocol, transport, and encoding support.

  • Die Hostlaufzeit.The host runtime. Dadurch wird die Beziehung der Hostinganwendungsdomäne zum Kanal und der Anwendungslaufzeit erweitert.This extends the relationship of the hosting application domain to the channel and application runtime.

Erweitern der AnwendungslaufzeitExtending the Application Runtime

In WCF-Anwendungen wird unterschieden zwischen Nachrichten, die für einen entsprechenden Kanal bestimmt sind und Nachrichten, die für die Anwendung selbst gespeichert werden.In WCF applications, there is a distinction between messages that are destined for a corresponding channel and messages that are destined for the application itself. Kanalnachrichten unterstützen einige kanalbezogene Funktionen, zum Beispiel das Einrichten einer sicheren Konversation oder einer zuverlässigen Sitzung.Channel messages support some channel-related functionality, such as establishing a secure conversation or establishing a reliable session. Diese Nachrichten sind nicht für die Anwendungslaufzeit verfügbar; sie werden vor Einbeziehung der Anwendungsebene verarbeitet.These messages are not available to the application runtime; they are processed before the application layer is involved.

Anwendungsnachrichten beinhalten Daten für einen Client- oder einen Dienstvorgang, der von Ihnen oder einem Kunden erstellt wurde.Application messages contain data that is destined for a client or service operation that you or your customer has created. Diese Nachrichten sind je nach Anforderung für das Erweiterungssystem auf Anwendungsebene in Nachrichten- oder Objektform verfügbar.These messages are available to the application-level extension system in message or object form, depending upon your needs.

Alle Nachrichten durchlaufen das Kanalsystem; nur Anwendungsnachrichten werden vom Kanalsystem an die Anwendung weitergegeben.All messages pass through the channel system; only application messages are passed from the channel system into the application. Um neue Funktionen auf Kanalebene zu erstellen, muss das Kanalsystem erweitert werden.To create new channel-level functionality, you must extend the channel system. Sollen neue Funktionen auf Anwendungsebene erstellt werden, muss die Dienst- oder Clientlaufzeit (Verteiler bzw. Kanalfactorys) erweitert werden.To create new application-level functionality, you must extend the service or client runtime (dispatchers and channel factories, respectively). Weitere Informationen zum Erweitern der Anwendungslaufzeit finden Sie unter Erweitern von ServiceHost und der Dienstmodellebene.For more information about extending the application runtime, see Extending ServiceHost and the Service Model Layer.

Erweitern der SicherheitExtending Security

Um benutzerdefinierte Sicherheitsmechanismen (zum Beispiel Token und Anmeldeinformationen) zu erstellen, muss das Sicherheitssystem erweitert werden.To build custom security mechanisms such as tokens and credentials, you must extend the security system. Weitere Informationen finden Sie unter Erweitern der Sicherheit.For more information, see Extending Security.

Erweitern von MetadatenExtending Metadata

Sollen die Metadaten nicht nur im Standardsystem verfügbar gemacht werden, muss das Metadatensystem erweitert werden.To expose your metadata in differently than the default, you must extend the metadata system. Weitere Informationen finden Sie unter Erweitern des Metadatensystems.For more information, see Extending the Metadata System.

Erweitern der SerialisierungExtending Serialization

Wenn Sie benutzerdefinierte Encoder erstellen und Datenersatzzeichen oder andere Elemente, bei denen übertragene Daten angepasst werden, bereitstellen möchten, erweitern Sie das Serialisierungssystem.To build custom encoders, provide data surrogates, or other work involving the customization of transferred data, you must extend the serialization system. Weitere Informationen finden Sie unter Erweitern von Encodern und Serialisierungsprogrammen.For more information, see Extending Encoders and Serializers.

Erweitern von BindungenExtending Bindings

Sollen Transport- oder Protokollkanäle der Anwendungsebene zugeordnet werden, muss das Bindungssystem erweitert werden.To associate transport or protocol channels with the application layer, you must extend the binding system. Weitere Informationen finden Sie unter Erweitern von Bindungen.For more information, see Extending Bindings.

Erweitern des KanalsystemsExtending the Channel System

Kanäle erstellen, die benutzerdefinierte Transporte unterstützen oder Protokoll Funktionalität, finden Sie unter Erweitern der Kanalschicht.To create channels that support custom transports or protocol functionality, see Extending the Channel Layer.

Erweitern des DiensthostsystemsExtending the Service Hosting System

Soll das dienstweite Anwendungsmodell geändert werden, ist eine Erweiterung der System.ServiceModel.ServiceHostBase-Klasse erforderlich.To modify the service-wide application model, you must extend System.ServiceModel.ServiceHostBase class. Weitere Informationen finden Sie unter Erweitern von ServiceHost und der Dienstmodellebene.For more information, see Extending ServiceHost and the Service Model Layer.

Soll die Beziehung zwischen der Hostanwendungsdomäne und dem Diensthost geändert werden, ist eine Erweiterung der System.ServiceModel.Activation.ServiceHostFactory-Klasse erforderlich.To modify the relationship between the hosting application domain and the service host, you must extend the System.ServiceModel.Activation.ServiceHostFactory class. Weitere Informationen finden Sie unter erweitern Hosting mithilfe von ServiceHostFactory.For more information, see Extending Hosting Using ServiceHostFactory.

Siehe auchSee Also

Erweitern von WCFExtending WCF