Entwickeln von KanälenDeveloping Channels

Um ein Protokoll oder einen Transportkanal Kanal zu entwickeln, der mit der Windows Communication Foundation (WCF) verwendet werden können sind Anwendungsebene mehrere Schritte erforderlich.To develop a protocol or transport channel that can be used with the Windows Communication Foundation (WCF) application layer requires several steps. In diesem Thema werden diese Schritte beschrieben, und Sie werden auf bestimmte Themen verwiesen, in denen Sie weitere Informationen erhalten.This topic describes those steps and points you to specific topics for more information. Um zu verstehen, Kanal-Modells und die verschiedenen Typen, die in diesem Thema erwähnt wurden, finden Sie unter Übersicht über das Kanalmodell.To understand the channel model and the various types that are mentioned in this topic, see Channel Model Overview. Eine vollständige Transport-Kanal-Beispiel finden Sie unter Transport: UDP.For a complete transport channel sample, see Transport: UDP.

Die Aufgabenliste für die KanalentwicklungThe Channel Development Task List

Die Schritte, mit denen ein benutzerdefinierter Kanal wie folgt erstellt wird.The steps to create a user-defined channel are as follows. Für alle Kanäle gilt Folgendes:All channels must:

  1. Es muss entschieden werden, welche Nachrichtenaustauschmuster des Kanals (IOutputChannel, IInputChannel, IDuplexChannel, IRequestChannel oder IReplyChannel) von IChannelFactory und IChannelListener unterstützt werden und ob die sitzungsbasierten Varianten dieser Schnittstellen unterstützt werden.Decide which of the channel Message Exchange Patterns (IOutputChannel, IInputChannel, IDuplexChannel, IRequestChannel, or IReplyChannel) your IChannelFactory and IChannelListener will support, as well as whether it will support the sessionful variations of these interfaces. Weitere Informationen finden Sie unter Auswählen eines Nachrichtenaustauschmusters.For details, see Choosing a Message Exchange Pattern.

  2. Es müssen eine Kanalfactory und ein Listener (IChannelFactory und IChannelListener) erstellt werden, die das Nachrichtenaustauschmuster unterstützen.Create a channel factory and listener (IChannelFactory and IChannelListener) that support your message exchange pattern. Ausführliche Informationen zum Entwickeln von Factorys finden Sie unter Client: Kanalfactorys und Kanäle.For details about developing factories, see Client: Channel Factories and Channels. Ausführliche Informationen zum Entwickeln von Listenern finden Sie unter Dienst: Kanallistener und Kanäle.For details about developing listeners, see Service: Channel Listeners and Channels.

  3. Es muss sichergestellt werden, dass alle netzwerkspezifischen Ausnahmen zu System.TimeoutException oder der entsprechenden abgeleiteten Klasse von CommunicationException normalisiert werden.Ensure that any network-specific exceptions are normalized to either System.TimeoutException or the appropriate derived class of CommunicationException. Weitere Informationen finden Sie unter Behandlung von Ausnahmen und Fehlern.For details, see Handling Exceptions and Faults.

  4. Wenn Sie die Verwendung von der Anwendungsebene aktivieren möchten, fügen Sie ein BindingElement hinzu, über das der benutzerdefinierte Kanal einem Kanalstapel hinzugefügt wird.To enable use from the application layer, add a BindingElement that adds the custom channel to a channel stack. Weitere Informationen finden Sie unter Erstellen eines BindingElement.For more information, see Creating a BindingElement.

Die folgenden zusätzlichen Schritte sind erforderlich, um eine umfassendere Unterstützung auf Anwendungsebene zu aktivieren:The following additional steps are required to enable more complete support at the application layer:

  1. Fügen Sie einen Bindungselementerweiterungs-Abschnitt hinzu, um das neue Bindungselement für das Konfigurationssystem verfügbar zu machen.Add a binding element extension section to expose the new binding element to the configuration system. Weitere Informationen finden Sie unter Konfigurations- und Metadatenunterstützung.For more information, see Configuration and Metadata Support.

  2. Fügen Sie Metadatenerweiterungen hinzu, um anderen Endpunkten Funktionen mitzuteilen.Add metadata extensions to communicate capabilities to other endpoints. Weitere Informationen finden Sie unter Konfigurations- und Metadatenunterstützung.For more information, see Configuration and Metadata Support.

  3. Fügen Sie eine Bindung hinzu, die einen Stapel mit Bindungselementen entsprechend einem genau definierten Profil vorkonfiguriert.Add a binding that pre-configures a stack of binding elements according to a well-defined profile. Weitere Informationen finden Sie unter Erstellen benutzerdefinierter Bindungen.For more information, see Creating User-Defined Bindings.

  4. Fügen Sie einen Bindungsabschnitt und ein Bindungskonfigurationselement hinzu, um die Bindung für das Konfigurationssystem verfügbar zu machen.Add a binding section and binding configuration element to expose the binding to the configuration system. Weitere Informationen finden Sie unter Konfigurations- und Metadatenunterstützung.For more information, see Configuration and Metadata Support.

Siehe auchSee Also

Erweitern von BindungenExtending Bindings