Delen via


Aangepaste binding imperatief

Het imperatieve voorbeeld laat zien hoe u imperatieve code schrijft om aangepaste bindingen te definiëren en te gebruiken zonder een configuratiebestand of een door WCF gegenereerde client (Windows Communication Foundation) te gebruiken. In dit voorbeeld worden de functies van het HTTP-transport en het betrouwbare sessiekanaal gecombineerd om een betrouwbare HTTP-binding te maken. Dit voorbeeld is gebaseerd op de Aan de slag die een rekenmachineservice implementeert.

Notitie

De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp.

Op zowel de client als de service wordt een aangepaste binding gemaakt die twee bindingselementen bevat (Reliable Session en 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);

Op de service wordt de binding gebruikt door een eindpunt toe te voegen aan de ServiceHost:

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

Op de client wordt de binding gebruikt door een ChannelFactory om een kanaal te maken voor de service:

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

Dit kanaal wordt vervolgens gebruikt om te communiceren met de service:

// 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);

Wanneer u het voorbeeld uitvoert, worden de bewerkingsaanvragen en -antwoorden weergegeven in het clientconsolevenster. Druk op Enter in het clientvenster om de client af te sluiten.

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.

Het voorbeeld instellen, compileren en uitvoeren

  1. Zorg ervoor dat u de eenmalige installatieprocedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.

  2. Als u de C# of Visual Basic .NET-editie van de oplossing wilt bouwen, volgt u de instructies in het bouwen van de Windows Communication Foundation-voorbeelden.

  3. Als u het voorbeeld wilt uitvoeren in een configuratie met één of meerdere computers, volgt u de instructies in Het uitvoeren van de Windows Communication Foundation-voorbeelden.

Zie ook