Comment accèder à une classe sur un serveur (Web Service) ?
digital3d
Messages postés37Date d'inscriptionjeudi 29 juillet 2004StatutMembreDernière intervention28 février 2005
-
22 févr. 2005 à 13:44
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 2010
-
11 janv. 2006 à 13:34
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 ??
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 22 févr. 2005 à 17:24
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.
digital3d
Messages postés37Date d'inscriptionjeudi 29 juillet 2004StatutMembreDernière intervention28 février 20051 27 févr. 2005 à 19:04
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 !!
cs_sacan
Messages postés1Date d'inscriptionlundi 23 mai 2005StatutMembreDernière intervention11 janvier 2006 11 janv. 2006 à 10:49
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
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 11 janv. 2006 à 13:34
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 :)