[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

microsoft.public.dotnet.framework.aspnet.webservices

How to pass a user defined type to a Webservice?

Henke

8/14/2003 8:56:00 PM

I know the webservice can have methods that take (some) .NET types as
arguments, but is it possible to write a method that takes a user defnined
class as a parameter? If yes, can someone please show me an example?

Thanks in advance?

/Henke


5 Answers

Wor Tony

8/15/2003 7:57:00 PM

0

"Henke" <henke_nord@hotmail.com> wrote in message
news:uEJvMaqYDHA.2572@TK2MSFTNGP09.phx.gbl...
> I know the webservice can have methods that take (some) .NET types as
> arguments, but is it possible to write a method that takes a user defnined
> class as a parameter? If yes, can someone please show me an example?
>
> Thanks in advance?
>
> /Henke
>
Create your class in your chosen .Net language (or create an .xsd schema
and generate the classes using xsd.exe).

Write your webmethod:
[WebMethod]
public MyReturnClass AcceptMyClass(MyInputClass myInputClass)
{
// do something with the input class and return an instance of
// MyReturnClass
}

that's about it!

HTH

Wor Tony
Nottingham - UK


Henke

8/18/2003 8:01:00 AM

0

Can the classes have any methods or am I stuck to creating clases with
public properties, only?
/Henke

"Wor Tony" <anthony@anthonypounder.SHOES.com> skrev i meddelandet
news:%23aAwxd2YDHA.3436@tk2msftngp13.phx.gbl...
> "Henke" <henke_nord@hotmail.com> wrote in message
> news:uEJvMaqYDHA.2572@TK2MSFTNGP09.phx.gbl...
> > I know the webservice can have methods that take (some) .NET types as
> > arguments, but is it possible to write a method that takes a user
defnined
> > class as a parameter? If yes, can someone please show me an example?
> >
> > Thanks in advance?
> >
> > /Henke
> >
> Create your class in your chosen .Net language (or create an .xsd schema
> and generate the classes using xsd.exe).
>
> Write your webmethod:
> [WebMethod]
> public MyReturnClass AcceptMyClass(MyInputClass myInputClass)
> {
> // do something with the input class and return an instance of
> // MyReturnClass
> }
>
> that's about it!
>
> HTH
>
> Wor Tony
> Nottingham - UK
>
>


Sam Vanhoutte

8/18/2003 1:07:00 PM

0


"Henke" <henke_nord@hotmail.com> wrote in message
news:%23hWlq7VZDHA.2284@TK2MSFTNGP12.phx.gbl...
> Can the classes have any methods or am I stuck to creating clases with
> public properties, only?
> /Henke
>
The classes can have methods, but these methods are not serialized, as they
never contain state...
Clients need to have objects with the same properties, but they don't need
to have these methods...


Wor Tony

8/21/2003 8:19:00 PM

0

"Sam Vanhoutte" <sam_vanhoutte@hotmail.com> wrote in message
news:eA4GHmYZDHA.2256@TK2MSFTNGP10.phx.gbl...
>
> "Henke" <henke_nord@hotmail.com> wrote in message
> news:%23hWlq7VZDHA.2284@TK2MSFTNGP12.phx.gbl...
> > Can the classes have any methods or am I stuck to creating clases with
> > public properties, only?
> > /Henke
> >
> The classes can have methods, but these methods are not serialized, as
they
> never contain state...
> Clients need to have objects with the same properties, but they don't need
> to have these methods...
>
Yep. As Sam has already said, no methods, just public properties.

If you create an xsd, then the client and your web service can validate the
objects using
schema validation.

HTH

AP
Nottingham - UK


simon.smith

9/1/2003 12:40:00 PM

0

"Wor Tony" <anthony@anthonypounder.SHOES.com> wrote in message news:<OIRDDGCaDHA.736@TK2MSFTNGP09.phx.gbl>...
> "Sam Vanhoutte" <sam_vanhoutte@hotmail.com> wrote in message
> news:eA4GHmYZDHA.2256@TK2MSFTNGP10.phx.gbl...
> >
> > "Henke" <henke_nord@hotmail.com> wrote in message
> > news:%23hWlq7VZDHA.2284@TK2MSFTNGP12.phx.gbl...
> > > Can the classes have any methods or am I stuck to creating clases with
> > > public properties, only?
> > > /Henke
> > >
> > The classes can have methods, but these methods are not serialized, as
> they
> > never contain state...
> > Clients need to have objects with the same properties, but they don't need
> > to have these methods...
> >
> Yep. As Sam has already said, no methods, just public properties.
>
> If you create an xsd, then the client and your web service can validate the
> objects using
> schema validation.
>
> HTH
>
> AP
> Nottingham - UK

The way to do this is:

First create the classes you want to send in a separate assembly. In
the Web Service project reference that assembly and construct and
return the class you want.
In the Client project reference the assembly containing the class(es)
you want to sent. Then create (or update) the Web Reference.
Now open up the Reference.cs associated with the Web reference. At the
bottom you will find a class definition containing the fields og the
class as public fields. DELETE THIS BIT OF CODE!
At the top of the Reference.cs add a 'using' for the assembly which
contains the passed class, and add the same using wherever you call
the Web Service. Compile. Go.

If later you update the Web reference the deleted class definition
will be reinstated and the client will not compile. Fine. Go back and
delete the generated class definition and add the using to the
Reference.cs and all will be OK.

HTH