Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / Web Services / August 2007

Tip: Looking for answers? Try searching our database.

Collections, Multiple classes interacting and Web Services!?

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Vaughn Haybittle - 03 Aug 2007 22:37 GMT
Hi,

I have a few questions relating to web services.  First some Background:

I have developed two classes in ASP.Net (VB):
1)  The first is a class that contains some fields that represent header
information.  This class also contains a strongly typed collection.  This is
'Object A'
2)  The second class represents the line items for each record.  For each
line item I would expect the consumer of the web service to create an object
from this class.    Ideally each of these objects will be added to the
collection of the object created ion 1 above.  The entire object in 1 above
will then be passed to a web service which will save the header information
and process each item in the collection to a database.  This is 'Object B'

My questions are:

A)  How do I structre the WebService.  I know a I need a webmethod that
takes the 'Object A' above and saves its data to a database.  However Unless
I create a webmethod that has the two classes as arguements (i.e. 'Object A'
and 'Object B') My WSDL file does not reflect the two classes which means
that they can not be instabtiated by the consumer of the web service.

B)  I have written a test page.  In this page I instantiate a new instance
of the item in Object A (via the web reference) above and a new instance of
the 'Object B' above.  I then attempt to add 'Object B' to the collection in
the 'Object A'.

I need some aqdvice on how to structure my web class and how to consume the
classes from the test page (aspx) page.

C) Another question I have is that when I try to reference the Collection
via the web service it appears as though it is an array rather than a
collection.  why is this?

Fundamentally I am wanting to allow consumers to create an instance of
Object B for every line item in a database table and to add that to a
collection in Object A.  Object A also has a few additional header fields
which will then be populated.  I then want to pass the populated 'Object A'
to a web service that will write the header informatiuo and each item in the
collection to a database.

At present I can not seem to achieve this as either:
i) My WSDL file does not reflect my classes
ii) I am unable to populate the collection with multiple 'Object B's'
iii) I am not consuming the web service correctly from my test page.
(should I instantiate Object A and Object B in my web page and then add
Object B to Oject A;'s collection in the consuming page or can I do this
behind the scenes via private communication between Object A and Object B?

Any suggestions or help wwould be appreciated.

Warm Regards,

Vaughn
Spam Catcher - 04 Aug 2007 18:44 GMT
> I need some aqdvice on how to structure my web class and how to
> consume the classes from the test page (aspx) page.

Web services can take in an array of simple objects. Perhaps you can
pass in an array of of Object A's. Each object A has a property with
Object B.

Or you can pass in XML - and validate the XML server side to ensure the
proper structure.

Another caveat - Web Services don't support readonly properties.

> C) Another question I have is that when I try to reference the
> Collection via the web service it appears as though it is an array
> rather than a collection.  why is this?

Web services don't support collecftions.

If you need rich objects, use Remoting/WCF.

> Fundamentally I am wanting to allow consumers to create an instance of
> Object B for every line item in a database table and to add that to a
> collection in Object A.  Object A also has a few additional header
> fields which will then be populated.  I then want to pass the
> populated 'Object A' to a web service that will write the header
> informatiuo and each item in the collection to a database.

> At present I can not seem to achieve this as either:
> i) My WSDL file does not reflect my classes

It won't - because WSDL only supports a subset of data structures.

http://msdn2.microsoft.com/en-us/library/3003scdt.aspx

> ii) I am unable to populate the collection with multiple 'Object B's'

Pass in an array?
Gustaf - 08 Aug 2007 13:04 GMT
>> C) Another question I have is that when I try to reference the
>> Collection via the web service it appears as though it is an array
>> rather than a collection.  why is this?
>
> Web services don't support collecftions.

Many, many thanks for this info. I've been blocked by this issue for weeks now. How are you supposed to know it, unless you happen to find this particular page you mentioned? And even that is not explicit about collections. The wsdl.exe tool and Add Web Reference wizard ought to produce a warning whenever it finds an object array!

Gustaf

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.