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
Se till att du har utfört engångsinstallationsproceduren för Windows Communication Foundation-exempel.
Om du vill skapa C# eller Visual Basic .NET-versionen av lösningen följer du anvisningarna i Skapa Windows Communication Foundation-exempel.
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.