Dela via


Imperativ för anpassad bindning

Imperativt exempel visar hur du skriver imperativ kod för att definiera och använda anpassade bindningar utan att använda en konfigurationsfil eller en WCF-genererad klient (Windows Communication Foundation). Det här exemplet kombinerar de funktioner som tillhandahålls av HTTP-transporten och den tillförlitliga sessionskanalen för att skapa en tillförlitlig HTTP-baserad bindning. Det här exemplet baseras på komma igång som implementerar en kalkylatortjänst.

Kommentar

Installationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet.

På både klienten och tjänsten skapas en anpassad bindning som innehåller två bindningselement (Reliable Session och 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);

I tjänsten används bindningen genom att lägga till en slutpunkt i ServiceHost:

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

På klienten används bindningen av en ChannelFactory för att skapa en kanal till tjänsten:

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

Den här kanalen används sedan för att interagera med tjänsten:

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

När du kör exemplet visas åtgärdsbegäranden och svar i klientkonsolfönstret. Tryck på RETUR i klientfönstret för att stänga av klienten.

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.

Så här konfigurerar du, skapar och kör exemplet

  1. Se till att du har utfört engångsinstallationsproceduren för Windows Communication Foundation-exempel.

  2. Om du vill skapa C# eller Visual Basic .NET-versionen av lösningen följer du anvisningarna i Skapa Windows Communication Foundation-exempel.

  3. Om du vill köra exemplet i en konfiguration med en eller flera datorer följer du anvisningarna i Köra Windows Communication Foundation-exempel.

Se även