Comment accèder à une classe sur un serveur (Web Service) ?

Signaler
Messages postés
37
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
28 février 2005
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
J'ai donc un Web Service sur le serveur, le web service s'appelle "toto.asmx", à côté du web service, j'ai créer une classe appelé "tutu.cs". (désolé mais je dois faire simple pour être clair)

J'ai créer:
------------------------------------------------
Dans "Tutu.cs"
public Tutu()
{
int x = 0;
}
public int X
{
get { return x; }
}
-----------------------------------------------
Dans "Toto.asmx"
[WebMethod]
public tutu RenvoisMoiLaClasseTutu()
{
tutu maNouvelleClasseTutu = new Tutu();
return maNouvelleClasseTutu ;
}
-----------------------------------------------
Dans mon application Client (Application Windows), j'apelle mon Web Service et je lui dis de me renvoyer l'objet ou la classe Tutu:

private void Main()
{
...
WebService.Tutu tutu = new WebService.Tutu(); <-Ici j'ai le choix entre Tutu() ou Toto()
tutu = WebService.Toto.RenvoisMoiLaClasseTutu();
int x = tutu.X <-- ET LA JE VOIS RIEN, aucune propriété ??? que le ToString() général ???
}

J'espère que j'ai été clair, comment recevoir l'objet tutu alors que c'est un objet et non un webService, est-il possible de passer un Objet Custom ??? Ais-je oublier quelque chose ??

Merci

4 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
J'avais fait un message un peu plus long, mais le site a planté



J'a vu un probleme dans ce que t'as fait

Dans "Tutu.cs"
public Tutu()
{
int x = 0;
public int X
{
get { return x; }
}


[WebMethod]
public tutu RenvoisMoiLaClasseTutu()
{
tutu maNouvelleClasseTutu = new Tutu();
return maNouvelleClasseTutu ;
}


}



C'est pour ca qu'il ne voit pas le X puisqu'il ne fait pas partie de la
classe et aussi que tu vois toto . Mais peut etre que c'est juste une
erreur de simplification.



Mais je ne suis pas tres fort en webservice, il se peut que j'ai loupé quelque chose d'autres.




<hr>

Cyril - http://Hoshimi.CodeS-SourceS.fr
Messages postés
37
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
28 février 2005
1
Non jesus, je veux bien avoir 3 niveaux différents, une classe TUTU.cs, un web Service Toto.asmx et une application Windows: On verrait dans Visual Studio sous ma solution WEB:
...
tutu.cs
toto.asmx
...

Sous mon application Windows
....
Web Referencs
-> toto.asmx
....
MainForm.cs
....

Il semblerait qu'on ne peut pas d'une application cliente (Application Windows) appellé directement une propriété (? en tout cas ca marche pas), par contre ceci fonctionne très bien:

------------------------------------------------
Dans la classe "Tutu.cs"

public int X;

public Tutu()
{
// Par défaut je mets X à 0
X = 0;
}
public void Add(int Nombre)
{
//Je mets X à jour
X = Nombre;
}
------------------------------------------------
Dans le Web Service 'Toto.asmx'
[WebMethod]
public tutu RenvoisMoiLaClasseTutu()
{
tutu maNouvelleClasseTutu = new Tutu();
//J'ajoute à tutu le chiffre 10
maNouvelleClasseTutu.Add(10);
return maNouvelleClasseTutu ;
}
------------------------------------------------
Dans l'application Windows cliente:

private void Main()
{
...
WebService.Toto toto = new WebService.Toto();
WebService.Tutu tutu = new WebService.Tutu();

tutu = toto.RenvoisMoiLaClasseTutu();
int x = tutu.X;
}

Donc si je comprends bien, on ne peut faire comme sous une application Windows, des propriétés GET et SET, mais directement écrire dans une variable PUBLIC (ici X dans tutu.cs)

Finallement, j'aurais pu très bien mettre tout cela dans mon WebService et non créer une classe séparrément à TOTO, cela aurait été plus simple mais comme je travail sur un projet complexe, j'aurais bien voulu séparé chaque classe et les instancier dans mon WebService et me les renvoyer les objets directement avec leurs propriétés, les méthodes et les valeurs si les variables sont remplies.

Je comprends aussi une chose, on ne peut pas passer des objets avec leurs structures complètes, d'un WebService à une application Cliente, comme si la classe était en local pour l'application cliente, si quelqu'un à une solution, ca m'intéresse vivement !!
Messages postés
1
Date d'inscription
lundi 23 mai 2005
Statut
Membre
Dernière intervention
11 janvier 2006

bonjour
j'ai un webservice (en php 5) et je dois creer un client soap (en .net) pour acceder a ce webservice, je dois aussi recuperer les methodes
je suis debutant en .net
que dois je faire????????
merci pour votre aide
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Dans Visual Studio tu fais add web reference, tu lui donnes l'adresse de ton webservice il va te generer une classe avec toutes les fonctions qui va bien :)


<HR>
Cyril - MVS - MCP ASP