Yes, as erymuzuan already stated, you can build services and consume
them from any process, i.e. services as well as GUI apps.
However, alternatively to programming against the raw SoapEnvelope API,
you can follow the same programming model as you are used to with
ASP.NET web services or .NET Remoting.
WSE has two classes to help you, SoapService to build services that
listen on any supported endpoint and SoapClient to consume WSE services.
You can launch the service with the following two lines of code:
EndpointReference reference = new EndpointReference( new Uri(
"soap.tcp://localhost:8700/WSEEcho" ) );
SoapReceivers.Add( reference, typeof(EchoService) );
Where the EchoService class is a class derived from SoapService.
Then, with the service running, you can create a proxy class for that
service with WSE's wsewsdl2.exe tool:
wsewsdl2 soap.tcp://localhost:8700/WSEEcho proxy.cs
And you're set. The proxy class works just like its ASMX counter part.