Hvordan får klienten, kendskab til klasser i en webservice?

Tags:    c#

Hej,

Jeg har et problem.

Jeg har lavet et webservice testprojekt, hvor min webservice foruden Service.asmx klassen, indeholder to klasser, en Person- og en PersonList-klasse. Personliste-klassen bruges til at holde styr på de personer der oprettes.

I Service.asmx har jeg en metode så klienten kan hente et Personliste objekt.

[WebMethod]
public PersonList GetPersonList()
{
return personList;
}

Ovre på klientsiden kender klienten fint til PersonList klassen (går ud fra at da skyldes at klassen bruges som returtype i webmetoden).

Men når jeg prøver at hente et Person objekt ud fra personlisten, så kender klienten ikke til Person-klassen og jeg kan dermed ikke kalde de metoder og hente det data der ligger i Person-objekterne.

Nogen der ved hvordan jeg løser dette? Skal Person-klassen annoteres med noget bestemt eller...?

Håber I kan hjælpe mig.

Med venlig hilsen,

Rasmus







3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Når du laver en web-reference til en webservice i Visual Studio, så vil den fx blive ryge i namespacet dk.myWebservice. I dette namespace kan du så tilgå de objekter, som er muligt at hente ud fra servicen, ligesom du her kan lave instansen af servicen.

dk.myWebservice.MyService service = new dk.myWebservice.MyService();
dk.myWebservice.PersonList list = service.GetPersonList();

Herefter burde du kunne hente hvert Person-objekt ud ved at sige (altså ligger Person-klassen i samme namespace):

dk.myWebservice.Person p = list.Get(1)

eller noget i den stil.



Håber det kunne bruges.



De klasser som klienten kan se på din webservice indeholder alene de public properties, og ingen metoder.

Du skal "gentage" koden for metoderne i klient-koden.







t