- Implementing a WCF Service
- Hosting the Service
- Writing a Client
- Summary
Writing a Client
Finally, we can write a client in F# to test our endpoint. Create a new F# application. Add a reference to the FSharpWCF project and the System.ServiceModel and System.Runtime.Serialization assemblies. I also add the following config (using the WCF Service Configuration Editor, or by hand). This config creates a client binding named Client that talks to the service URL as configured within Visual Studio:
<system.serviceModel> <client> <endpoint address= "http://localhost:11000/SimpleService.svc/Simple" binding="basicHttpBinding" contract="FSharpWCF.ISimpleService" name="Client" /> </client> </system.serviceModel>
For the client to talk to the service, we instantiate a ChannelFactory, create a new channel, and then send the name to the WCF service:
open System.ServiceModel open FSharpWCF let factory = new ChannelFactory<ISimpleService>("Client") let channel = factory.CreateChannel() let name = new Name() name.FirstName <- "Scott" name.MiddleInitial <- 'C' name.LastName <- "Seely" printf "%s" (channel.MyRequestReplyMessage(name)) factory.Close()
This prints the following line to the console:
Scott C Seely