Teilen über


Imperativ für benutzerdefinierte Bindungen

Im Imperativen Beispiel wird veranschaulicht, wie imperativer Code geschrieben wird, um benutzerdefinierte Bindungen zu definieren und zu verwenden, ohne eine Konfigurationsdatei oder einen von Windows Communication Foundation (WCF) generierten Client zu verwenden. In diesem Beispiel werden die vom HTTP-Transport bereitgestellten Features und der zuverlässige Sitzungskanal kombiniert, um eine zuverlässige HTTP-basierte Bindung zu erstellen. Dieses Beispiel basiert auf dem Abschnitt Erste Schritte, der einen Rechnerdienst implementiert.

Hinweis

Die Einrichtungsverfahren und Build-Anweisungen für dieses Beispiel befinden sich am Ende dieses Themas.

Sowohl für den Client als auch für den Dienst wird eine benutzerdefinierte Bindung erstellt, die zwei Bindungselemente enthält (zuverlässige Sitzung und HTTP):

ReliableSessionBindingElement reliableSession = new ReliableSessionBindingElement();
reliableSession.Ordered = true;

HttpTransportBindingElement httpTransport = new HttpTransportBindingElement();
httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;

CustomBinding binding = new CustomBinding(reliableSession, httpTransport);

Im Dienst wird die Bindung verwendet, indem ein Endpunkt zum ServiceHost hinzugefügt wird:

serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, "");

Auf dem Client wird die Bindung von ChannelFactory verwendet, um einen Kanal zum Dienst zu erstellen:

EndpointAddress address = new EndpointAddress("http://localhost:8000/servicemodelsamples/service");
ChannelFactory<ICalculator> channelFactory = new ChannelFactory<ICalculator>(binding, address);
ICalculator channel = channelFactory.CreateChannel();

Dieser Kanal wird dann für die Interaktion mit dem Dienst verwendet:

// Call the Add service operation.
double value1 = 100.00D;
double value2 = 15.99D;
double result = channel.Add(value1, value2);
Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result);

Wenn Sie das Beispiel ausführen, werden die Vorgangsanforderungen und -antworten im Clientkonsolenfenster angezeigt. Drücken Sie im Clientfenster die EINGABETASTE, um den Client zu schließen.

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press <ENTER> to terminate client.

So können Sie das Beispiel einrichten, erstellen und ausführen

  1. Stellen Sie sicher, dass Sie das One-Time Setup-Verfahren für die Windows Communication Foundation-Beispiele ausgeführt haben.

  2. Um die C#- oder Visual Basic .NET-Edition der Lösung zu erstellen, befolgen Sie die Anweisungen in Building the Windows Communication Foundation Samples.

  3. Wenn Sie das Beispiel in einer Konfiguration mit einem Computer oder über Computer hinweg ausführen möchten, folgen Sie den Anweisungen unter Durchführen der Windows Communication Foundation-Beispiele.

Siehe auch