Freigeben über


Client-Kanalebenenprogrammierung

In diesem Thema wird das Schreiben einer Windows Communication Foundation (WCF)-Clientanwendung ohne Verwenden der System.ServiceModel.ClientBase-Klasse und der zugehörigen Objektmodelle beschrieben.

Senden von Nachrichten

Um für das Senden von Nachrichten und das Empfangen und Verarbeiten von Antworten bereit zu sein, sind die folgenden Schritte erforderlich:

  1. Erstellen einer Bindung.
  2. Erstellen einer Kanalfactory.
  3. Erstellen eines Kanals.
  4. Senden einer Anforderung und Lesen der Antwort.
  5. Schließen Sie alle Kanalobjekte.

Erstellen einer Bindung

Ähnlich wie beim Empfang (siehe Dienst-Kanalebenenprogrammierung) beginnt das Senden von Nachrichten mit der Erstellung einer Bindung. In diesem Beispiel wird eine neue System.ServiceModel.Channels.CustomBinding erstellt und ein System.ServiceModel.Channels.HttpTransportBindingElement seiner Elementauflistung hinzugefügt.

Erstellen einer ChannelFactory

Anstatt einen System.ServiceModel.Channels.IChannelListener zu erstellen, wird hier eine System.ServiceModel.ChannelFactory erstellt, indem System.ServiceModel.ChannelFactory.CreateFactory auf der Bindung aufgerufen wird, bei der der Typparameter System.ServiceModel.Channels.IRequestChannel ist. Während die Kanallistener von der Seite verwendet werden, die auf eingehende Nachrichten wartet, werden Kanalfactorys von der Seite verwendet, die die Kommunikation für die Erstellung eines Kanals initiiert. Wie Kanallistener müssen auch Kanalfactorys zuerst geöffnet werden, bevor sie verwendet werden können.

Erstellen eines Kanals

Wir rufen dann System.ServiceModel.ChannelFactory.CreateChannel auf, um einen IRequestChannel zu erstellen. Dieser Aufruf nimmt die Adresse des Endpunkts, mit dem wir mithilfe des neu erstellten Kanals kommunizieren möchten. Nachdem wir einen Kanal haben, führen wir einen Öffnen-Vorgang an diesem durch, um ihn in einen Bereitschaftsstatus für die Kommunikation zu versetzen. Abhängig von der Natur des Transports initiiert dieser Aufruf zum Öffnen möglicherweise eine Verbindung mit dem Zielendpunkt, oder es geschieht nichts auf dem Netzwerk.

Senden einer Anforderung und Lesen der Antwort

Nachdem wir einen offenen Kanal erhalten haben, können wir eine Nachricht erstellen und die Anforderungsmethode des Kanals nutzen, um die Anforderung zu senden und dann auf die Zustellung der Antwort zu warten. Wird diese Methode zurückgegeben, verfügen wir über eine Antwortnachricht, die wir lesen können, um die Antwort des Endpunkts herauszufinden.

Schließen von Objekten

Um Ressourcenverluste zu vermeiden, schließen wir in Kommunikationsvorgängen verwendete Objekte, wenn sie nicht mehr benötigt werden.

Das folgende Codebeispiel zeigt einen grundlegenden Client, der die Kanalfactory zum Senden einer Nachricht und zum Lesen der Antwort verwendet.