By default Web Services return dehydrated classes. I call these classes dehydrated because when you return a complex type from a Web Service, you get a fields-only class. However, if you want a reconstituted object from a Web Service, you can get one with a bit of chicanery.
Assume for a moment that you are building Web Services to bridge applications internally or for select customers. These customers will have your library. If this is the case, you can modify the WSDL-generated proxy class by removing the generated proxy class and referencing your .dll assembly that contains the actual object. Voil ! You have created reconstituted, or fat, objects.
If you like your milk whole instead of powdered and real objects instead of flat versions of those objects, follow these steps.
When you are finished, your client application will think it is getting an actual object back from the Web Service.
As an alternative, suppose you have a Web Service that returns a complex type, but you do not have the original assemblies defining the real types instead of the generated types. Never fearyou can roll your own! That's right. Create a new assembly that has public properties with getters and setters that match the fields in the generated proxy class. Add the code you are interested in associating with the type returned from the Web Service, then modify the proxy file to refer to the custom type. Again, you have real objects instead of dehydrated ones.
Clearly, you don't have to do any of these things. You can take whatever the WSDL tool and the Web Service gives, but that wouldn't be very advanced. We are the masters of our domain, and the code bends to our will.