Web service - business objects don't show up


Water Cooler v2

I create a test Web service like so:

public class ServiceThingy: System.Web.Services.WebService
public int ReturnFour()
return 4;

I create another class other than this, like so:

class BusinessObject
public string doBusiness()
return "Did business. It was nice.";

I compile.
I make a new Console application project.
I add a Web Reference to this service asmx in my new console
application project.
When I do this:


I expect the BusinessObject class also to show up, but it doesn't. The
main service class shows up, though.

Now, earlier on, only a few days ago, I developed a huge Web Service
app with a lot of business objects and all the business object/classes
showed up in the client. What's the deal here? Am I missing something


Notice that the ReturnFour method is attributed with [WebMethod], and that
the doBusiness method is not.

Josh Twist

The ASMX runtime will add all types exposed in your webmethod to the
WSDL (and thus, in turn, to your client projects when you add web
reference). In this case your WebMethod exposes only an int.

To prove the point create another WebMethod that returns an instance of
your BusinessObject....

However, the process by which objects enter and leave a Web Service is
XmlSerialization - and this is capable of serializing data only - so
your doBusiness() method wouldn't be visible.

It's important to get a grip on all this before venturing too far with
Web Services - so I recommend you read this:
in particular the section on Mapping XML to Objects.

Good Luck


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question