Great post here about using the Visual Studio Command Prompt tools to pull the WSDL from a .NET .asmx (traditional, non-WCF) web service and compile a standalone class library which encapsulates the interface. Basically, run a Visual Studio prompt, switch to a writable directory and run these two commands:
Convert WSDL to service reference .cs classes:
wsdl http://z.com/MyService.asmx
That will create classes in the global namespace and name class file based on the service URL.
Alternately, you can add a namespace and control the name of the output file:
wsdl http://z.com/MyService.asmx /n:MyServiceNamespace /o:MyService.cs
Compile into a class library:
csc /t:library MyService.cs
Then in LINQPad add a reference to the new .dll and the System.Web.Services .NET library.
Then you can write this in LinqPAD:
// create an instance of the service var service = new MyService(); // Or namespace version var service2 = new MyServiceNamespace.MyService(); // invoke a web method and dump the results service.MyOperation().Dump();