views:

2034

answers:

3

Hello everyone. I have a question. How can i invoke a web service and get the result from a C# desktop application. I am making a desktop app and I want it to be able to connect to my online ASP.net web services. How is this possible?

+1  A: 

This is possible the same way that you access web services from any other type of application, be it an ASP.NET page, a class library or windows service.

For an explanatory tutorial on the subject, see Accessing a Web Service from a Desktop Application.

Cerebrus
Or, he could use a Web reference and do it transparently.
configurator
+4  A: 

Add a Web Reference to the webservice in your Desktop App project reference. Doing so would generate a Proxy for the Webservice called Reference.cs You can access your webservice using the proxy.

AB Kolan
+2  A: 
  1. In Solution Explorer, right-click your project node and select Add Service Reference.
  2. Enter the URL where your service WSDL is located. This is usually the URL of the service itself.
  3. This generates a strongly-typed proxy class in a new Services References folder in your project.
  4. Write code in your desktop app to instantiate the proxy class and invoke methods on it. The rest works like magic. :)

AB Kolan was also correct, but Add Web Reference uses the old-style web services framework whereas Add Service References uses the new WCF stack. Important note: It is not required that the service itself use WCF for you to use WCF on the client side. WCF on the client is typically the best choice for any service, provided you can take a dependency on .NET 3.0 and above.

Andrew Arnott