[C#] Questions sur les webmethodes et leur utilisation (2024)

  • Forum
  • Dotnet
  • Développement Web avec .NET
  • Services Web
  • [C#] Questions sur les webmethodes et leur utilisation

+ Répondre à la discussion

[C#] Questions sur les webmethodes et leur utilisation (2) Discussion :

Sujet :

Services Web

  • Outils de la discussion
    • Afficher une version imprimable
    • S'abonner à cette discussion…
  • Affichage
    • Choisir le mode hybride
    • Choisir le mode arborescent
  1. 12/12/2006,10h29#1

    NoiBe

    [C#] Questions sur les webmethodes et leur utilisation (3)

    Nouveau membre du Club[C#] Questions sur les webmethodes et leur utilisation (4)

    [C#] Questions sur les webmethodes et leur utilisation (5) [C#] Questions sur les webmethodes et leur utilisation (6)

    Inscrit en
    Octobre 2004
    Messages
    68

    [C#] Questions sur les webmethodes et leur utilisation (7)

    Points
    39

    [C#] Questions sur les webmethodes et leur utilisation (8) [C#] Questions sur les webmethodes et leur utilisation

    Bonjour,

    J'ai plusieurs petites questions :
    J'ai généré 2 webservices. Un de test et un autre qui me servira à ma production.

    Le premier que j'ai nommé "testAnimal" est un simple webservice qui prend comme paramètre d'entrée un "string" et qui renvoi un objet de type "animal" contenant le string passé en paramètre ainsi que des valeurs prédéfinis

    CLASSE ANIMAL

    Code :Sélectionner tout -Visualiser dans une fenêtre à part

    1
    2
    3
    4
    5
    6
    7
    8
    9

    [Serializable]public class animal{ public string race; public int age; public string continent; public string nom;}
    WEB METHODE ANIMAL
    Code :Sélectionner tout -Visualiser dans une fenêtre à part

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    [WebMethod] public animal testAnimal(string n) { animal o = new animal(); o.nom = n; o.age = 15; o.continent = "europe"; o.race = "félin"; return o; }
    Je me suis donc codé un petit client qui me permet de tester mon web service.
    J'ai donc importer une nouvelle référence web via le WSDL. Le proxy a été créé.

    Code d'appel à la WEB METHOD dans mon client de test :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    public static void TestMethodeAnimal() { TestWSDL.transfert.animal reponse; transfert.Service o = new transfert.Service(); reponse = o.testAnimal("toto"); Console.WriteLine(reponse.nom); Console.WriteLine(reponse.race); Console.WriteLine(reponse.age); Console.WriteLine(reponse.continent); Console.ReadLine(); }
    Jusque là, tout va bien, mon service me répond bien.

    Là où ca se corse, c'est pour mon autre méthode, celle de qui sera utilisée.
    Elle prend en paramètre un objet plus complexe (avec des accesseur set/get ainsi que d'autres méthodes public).
    Imaginons, j'ai un objet X, je souhaite passer cet objet à ma webmethode : Je déclare donc un objet X de type "TestWSDL.transfert.monObjet"

    Je souhaite ensuite remplir cet objet afin de l'envoyer à ma méthode. Problème, les accesseurs d'écriture/lecture et tous les autres ne sont pas disponible, je ne les vois pas.

    A noté que je ne vois pas non plus certains objets qui ne sont utilisé que au sein de l'objet X.

    Y-a-t-il quelque chose à faire ou bien j'ai loupé quelque chose ?

    merci

    Répondre avec citation 0 0

  2. 12/12/2006,11h44#2

    rattlehead

    [C#] Questions sur les webmethodes et leur utilisation (10)

    Membre expérimenté[C#] Questions sur les webmethodes et leur utilisation (11)

    [C#] Questions sur les webmethodes et leur utilisation (12) [C#] Questions sur les webmethodes et leur utilisation (13)

    Inscrit en
    Août 2005
    Messages
    1240

    [C#] Questions sur les webmethodes et leur utilisation (14)

    Points
    1 619

    [C#] Questions sur les webmethodes et leur utilisation (15)

    salut
    il me semble j'avais essayé à l'époque mais je crois que les assesseurs et les webservice ca n'est pas encore ça. je crois qu'il faut que tu passes tes données dans les parametres de ta méthode. d'un autre coté c'est logique vu qu'il n'y a que de webmethod.

    Répondre avec citation 0 0

  3. 12/12/2006,11h49#3

    NoiBe

    [C#] Questions sur les webmethodes et leur utilisation (17)

    Nouveau membre du Club[C#] Questions sur les webmethodes et leur utilisation (18)

    [C#] Questions sur les webmethodes et leur utilisation (19) [C#] Questions sur les webmethodes et leur utilisation (20)

    Inscrit en
    Octobre 2004
    Messages
    68

    [C#] Questions sur les webmethodes et leur utilisation (21)

    Points
    39

    [C#] Questions sur les webmethodes et leur utilisation (22)

    Mais ma webmethod me renvoi un objet de type Y. Comment faire pour accéder aux propriétés de cet objet qui sera donc du type "TestWSDL.transfert.Y" si je n'ai pas accès aux accesseurs de cet objet ?

    En fait, je souhaiterais faire ca dans mon client de test :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42

    public static void TestTransfert() { TestWSDL.transfert.beanReponseTransfert reponse = new TestWSDL.transfert.beanReponseTransfert(); TestWSDL.transfert.beanTransfert question = new TestWSDL.transfert.beanTransfert(); TestWSDL.transfert.bean T1 = new TestWSDL.transfert.bean(); TestWSDL.transfert.bean T2 = new TestWSDL.transfert.bean(); TestWSDL.transfert.bean[] liste = new TestWSDL.transfert.bean[2]; T1.setCodeBase("00000001"); T1.setEtat(1); T1.setNumInt("1"); T1.setPjAttendue(false); T1.setBlocXML(new StreamReader("C:\\test\\T2.xml").ReadToEnd()); liste.SetValue(T1, 0); T2.setCodeBase("00000002"); T2.setEtat(2); T2.setNumInt("2"); T2.setPjAttendue(false); T2.setBlocXML(new StreamReader("C:\\test\\T3.xml").ReadToEnd()); liste.SetValue(T2, 1); question.setListe(liste); question.setDateEnvoi(DateTime.Now); Console.WriteLine("Calling the SOAP Server"); transfert.Service o = new transfert.Service(); reponse = o.transferer(question); Console.ReadLine(); foreach (beanReponse v in reponse.getListeReponse()) { Console.WriteLine("-------------------------------"); Console.WriteLine("CodeBase : " + v.getcodeBase()); Console.WriteLine("Code Retour : " + v.getCodeRetour()); Console.WriteLine("NumInt : " + v.getNumInt()); } }
    Donc, dans ce code :
    -"TestWSDL.transfert.beanReponseTransfert" et "TestWSDL.transfert.beanTransfert" existe bien, je peux donc créer un objet de ce type mais pas accéder aux méthodes écrites dans cet objet
    - "TestWSDL.transfert.bean" n'existe pas. Il n'a pas été importé. Il sagit d'un objet contenu dans un tableau présent dans l'objet de type "TestWSDL.transfert.beanTransfert"
    - Bien entendu, les "T1.xxxxx" et "T2.xxxxx" ne fonctionne pas puisqu'il ne reconnait pas le type.

    J'avoue que je suis paumé là

    Répondre avec citation 0 0

  4. 12/12/2006,12h08#4

    rattlehead

    [C#] Questions sur les webmethodes et leur utilisation (24)

    Membre expérimenté[C#] Questions sur les webmethodes et leur utilisation (25)

    [C#] Questions sur les webmethodes et leur utilisation (26) [C#] Questions sur les webmethodes et leur utilisation (27)

    Inscrit en
    Août 2005
    Messages
    1240

    [C#] Questions sur les webmethodes et leur utilisation (28)

    Points
    1 619

    [C#] Questions sur les webmethodes et leur utilisation (29)

    tu asjoutes la définition de ta classe dans ton client. ainsi tu auras accès à ces propriétés et ses methodes.

    Répondre avec citation 0 0

  5. 12/12/2006,13h57#5

    NoiBe

    [C#] Questions sur les webmethodes et leur utilisation (31)

    Nouveau membre du Club[C#] Questions sur les webmethodes et leur utilisation (32)

    [C#] Questions sur les webmethodes et leur utilisation (33) [C#] Questions sur les webmethodes et leur utilisation (34)

    Inscrit en
    Octobre 2004
    Messages
    68

    [C#] Questions sur les webmethodes et leur utilisation (35)

    Points
    39

    [C#] Questions sur les webmethodes et leur utilisation (36)

    Si par "définition de la classe dans le client" tu entends importer ma classe dans mon client, non je ne les ai pas importée. Mais de toute facon, je ne pourrais pas utiliser les méthodes puisque l'objet dans mon client n'aura pas comme type "beanTransfert" mais "TestWSDL.transfert.beanTransfert".

    je me trompe ?

    Répondre avec citation 0 0

  6. 13/12/2006,09h49#6

    NoiBe

    [C#] Questions sur les webmethodes et leur utilisation (38)

    Nouveau membre du Club[C#] Questions sur les webmethodes et leur utilisation (39)

    [C#] Questions sur les webmethodes et leur utilisation (40) [C#] Questions sur les webmethodes et leur utilisation (41)

    Inscrit en
    Octobre 2004
    Messages
    68

    [C#] Questions sur les webmethodes et leur utilisation (42)

    Points
    39

    [C#] Questions sur les webmethodes et leur utilisation (43)

    Je vais poser la question différemment, peut-être mon problème sera plus compréhensible :

    Comment faire pour que les méthodes d'un objet renvoyé par une web méthode soit accessible pour le client qui a interrogé cette webmethode afin de pouvoir récupérer/manipuler les attributs privés de cet objet renvoyé ?

    Actuellement, seuls les attributs public de cet objets sont récupérables et mon objet cntient des attributs privés.

    Je suis complétement bloqué à cause de ça [C#] Questions sur les webmethodes et leur utilisation (44)

    Répondre avec citation 0 0

  7. 13/12/2006,11h35#7

    rattlehead

    [C#] Questions sur les webmethodes et leur utilisation (46)

    Membre expérimenté[C#] Questions sur les webmethodes et leur utilisation (47)

    [C#] Questions sur les webmethodes et leur utilisation (48) [C#] Questions sur les webmethodes et leur utilisation (49)

    Inscrit en
    Août 2005
    Messages
    1240

    [C#] Questions sur les webmethodes et leur utilisation (50)

    Points
    1 619

    [C#] Questions sur les webmethodes et leur utilisation (51)

    avec la reflection peut être?
    mais ils sont privés pourquoi veux tu y accéder?

    Répondre avec citation 0 0

  8. 13/12/2006,11h42#8

    NoiBe

    [C#] Questions sur les webmethodes et leur utilisation (53)

    Nouveau membre du Club[C#] Questions sur les webmethodes et leur utilisation (54)

    [C#] Questions sur les webmethodes et leur utilisation (55) [C#] Questions sur les webmethodes et leur utilisation (56)

    Inscrit en
    Octobre 2004
    Messages
    68

    [C#] Questions sur les webmethodes et leur utilisation (57)

    Points
    39

    [C#] Questions sur les webmethodes et leur utilisation (58)

    En faite, il s'agit d'un webservice qui sera appelé par un programme écrit en Java. Le client envoi à mon webservice un objet et je lui en retourne un autre. Ces objets ont des attributs privés (défini dans le cahier des charges) qui ne sont accessible que par des get/set (exemple : getNom(),setNon(), etc...)

    Cependant, je n'arrive pas à comprendre pourquoi l'objet que je retourne ne contient pas les methodes qu'il contient pour accéder aux parties privés.

    Répondre avec citation 0 0

  9. 13/12/2006,12h14#9

    NoiBe

    [C#] Questions sur les webmethodes et leur utilisation (60)

    Nouveau membre du Club[C#] Questions sur les webmethodes et leur utilisation (61)

    [C#] Questions sur les webmethodes et leur utilisation (62) [C#] Questions sur les webmethodes et leur utilisation (63)

    Inscrit en
    Octobre 2004
    Messages
    68

    [C#] Questions sur les webmethodes et leur utilisation (64)

    Points
    39

    [C#] Questions sur les webmethodes et leur utilisation (65)

    Sinon, imaginons que je mettes tous les attributs de toutes mes classes en public afin de pouvoir y accéder, j'ai un autre problème.

    Lorsque j'accède au WSDL de mon service, certains objets ne sont pas décrits.
    Dans les faits :
    Dans mon projet nommé "ProjetWebService", j'ai au total 13 classes. Seulement, dans le WSDL, je n'ai que 2 classes de décrite (l'objet en entrée et l'objet en sortie de ma webmethode). Cependant, j'aurais besoin dans mon WSDL d'inclure également la description des autres objet.

    Quelqu'un pourrait m'aiguiller ?

    Merci à tous

    Répondre avec citation 0 0

  10. 13/12/2006,21h33#10

    Mehdi Feki

    [C#] Questions sur les webmethodes et leur utilisation (67)

    Membre expérimenté[C#] Questions sur les webmethodes et leur utilisation (68)

    [C#] Questions sur les webmethodes et leur utilisation (69) [C#] Questions sur les webmethodes et leur utilisation (70)

    [C#] Questions sur les webmethodes et leur utilisation (72) [C#] Questions sur les webmethodes et leur utilisation (73)

    Inscrit en
    Décembre 2004
    Messages
    1113

    [C#] Questions sur les webmethodes et leur utilisation (74)

    Points
    1 566

    [C#] Questions sur les webmethodes et leur utilisation (75)

    Salut,

    Je ne vais pas te faire un cours de la serialisation XML mais effectivement tu ne peux serialiser que les membres publiques et pas les méthodes. Donc pour pouvoir acceder à tes membres il faut les mettres publique

    Sinon pour ta deuxieme question, il n'ya aucun interet que l'utilitaire utilisé par VS te genere la description des classes que tes web methods n'utilisent pas. Pourquoi le proxy coté client doit te fournir l'interface de ces classes alors qu'elles ne seront pas utilisées pour invoquer des services Web ?

    Mehdi Feki : Modérateur .Net

    Répondre avec citation 0 0

  11. 14/12/2006,08h40#11

    NoiBe

    [C#] Questions sur les webmethodes et leur utilisation (77)

    Nouveau membre du Club[C#] Questions sur les webmethodes et leur utilisation (78)

    [C#] Questions sur les webmethodes et leur utilisation (79) [C#] Questions sur les webmethodes et leur utilisation (80)

    Inscrit en
    Octobre 2004
    Messages
    68

    [C#] Questions sur les webmethodes et leur utilisation (81)

    Points
    39

    [C#] Questions sur les webmethodes et leur utilisation (82)

    Merci pour tes réponses.

    J'ai en effet passé tous mes attributs en public et cela fonctionne nickel.

    Autre petite question pendant que j'y suis :
    J'ai un exemple de webmethod écrite en Java que je dois retranscrire dans mon webservice (donc écrit en C#). Cette webmethod a 2 paramètres en entrée.

    Pour l'un, pas de problème mais pour l'autre, il s'agit dans l'exemple d'un "DataHandler".
    Quel type en C# dois-je utiliser dans ma webmethod qui est l'équivalent du datahandler en Java ?

    Merci

    Je vais créer un nouveau topic pour ma question

    Répondre avec citation 0 0

+ Répondre à la discussion

  • Forum
  • Dotnet
  • Développement Web avec .NET
  • Services Web
  • [C#] Questions sur les webmethodes et leur utilisation

«Discussion précédente|Discussion suivante»

Discussions similaires

  1. Question sur les bases : utilisation d'un tableau

    Par TabrisLeFol dans le forum Général JavaScript

    Réponses: 2

    Dernier message: 13/12/2009, 12h37

  2. Question sur les JButtons et les actions qu' on peut leur incomber

    Par killerpapy dans le forum Composants

    Réponses: 1

    Dernier message: 26/02/2009, 16h59

  3. [débutant]Question théorique sur les objets et leurs références

    Par fezvez dans le forum Langage

    Réponses: 3

    Dernier message: 04/04/2008, 18h02

  4. Questions sur les shaders et leurs performances

    Par Dracul86 dans le forum Développement 2D, 3D et Jeux

    Réponses: 9

    Dernier message: 12/08/2007, 11h32

  5. Question sur les unions et leur zone mémoire.

    Par AsmCode dans le forum C

    Réponses: 9

    Dernier message: 17/03/2007, 05h49

Partager

Partager
[C#] Questions sur les webmethodes et leur utilisation (2024)

References

Top Articles
Latest Posts
Article information

Author: The Hon. Margery Christiansen

Last Updated:

Views: 5867

Rating: 5 / 5 (50 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: The Hon. Margery Christiansen

Birthday: 2000-07-07

Address: 5050 Breitenberg Knoll, New Robert, MI 45409

Phone: +2556892639372

Job: Investor Mining Engineer

Hobby: Sketching, Cosplaying, Glassblowing, Genealogy, Crocheting, Archery, Skateboarding

Introduction: My name is The Hon. Margery Christiansen, I am a bright, adorable, precious, inexpensive, gorgeous, comfortable, happy person who loves writing and wants to share my knowledge and understanding with you.