IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Discussion :

Garder en memoire l'appel web service


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 10
    Par défaut Garder en memoire l'appel web service
    Bonjour,

    Il y a une zone d'ombre sur un projet en c#.

    je dois consommer un web service qui possède plusieurs méthodes. Ces méthodes

    me renvoient un certains nombre de données.

    Ce web service je le consomme dans une application qui utilise plusieurs user

    control.

    Pour optimiser l'appel de ce web service, je fais un appel asynchrone. Cela fonctionne correctement.

    Mon problème est que je veux garder les données de cet appel en mémoire.

    Ce qui me permettra de réduire le nombre d'appel.

    Je ne sais pas trop comment procéder. j'ai pensé à enregistrer les données dans un

    dataset.

    Je ne veux pas de code. Just une idée.

    J'espère que mon explication est claire.

    Merci pour vos réponses.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Citation Envoyé par stagemp Voir le message
    Pour optimiser l'appel de ce web service, je fais un appel asynchrone. Cela fonctionne correctement.
    Très bien.

    Citation Envoyé par stagemp Voir le message
    Je ne veux pas de code. Just une idée.
    Tu te crées une classe personnalisée MyClass qui aura comme propriétés
    • une liste de paramètres passés à la méthode
    • une proprieté qui stocke le résultat de retour de la méthode


    Tu te crées une liste List<MyClass> que te servira à :
    • récupérer le résultat de le fonction si une instance de MyClass existe avec les même paramètres et ainsi ne pas effectuer l'appel au web service.
    • d'ajouter une nouvelle instance de MyClass si aucune instance ne correspond à la liste de paramètre devant être passée au web service. Et vu que ce sont des appels asynchrones , tu dois au retour du service web mettre à jour le retour de l'instance MyClass correspondante.

  3. #3
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 10
    Par défaut
    merci pour ta réponse.

    L'idée de créer une classe m'a traversée l'esprit. mais ce n'était pas aussi élaboré.

    Je vais essayer ta solution.

  4. #4
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 10
    Par défaut
    Salut

    j'ai codé ta solution h2s84.

    j'ai un souci sur la porté de ma variable.

    Ma classe retour je l'ai contruit ainsi

    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
     
     
    public retour()
    {}
     
    public retour(string _retourSession,string _retourSessionPPP,string _retourMas)
    {
    retourSessionPPP=_retourSessionPPP;
    retourSession=_retourSession;
    retourMas = _retourMas;
    }
     
    private string retourSession;
    private string retourSessionPPP;
    private string retourMas;
     
    public string RetourSession
    {
      get { return retourSession;}
      set { retourSession = value;}
    }
     
    public string RetourSessionPPP
    {
      get { return retourSessionPPP;}
      set { retourSessionPPP= value;}
    }
     
    public string RetourMas
    {
      get { return retourMas;}
      set { retourMas= value;}
    }
    }
    le code suivant me permet d'instacier ma classe retour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    retour retourWS;
     
    //Methode qui appel le web service
     
    //Dans la Methode qui affecte le retour du web service à la class
     
    UCtrl_Retour retourAppel = new UCtrl_Retour();
     
    retourWS = new retour("var1","var2","var3","var4");
     
    retourAppel.setRetour(retourWS);
    Le code où je récupère le retour(UCtrl_Retour)

    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
     
    public partial class UCtrl_Retour : UserControl
    {
      private retour re = new retour();
     
    internal retour Re
    {
       get {return re;}
       set {re = value;}
    }
     
    private void UCtrl_Retour_Load(object sender, EventArgs e)
    {
       string test;
       test = Re.retourMas;
     
    }
    }
    }
    Ma variable re est null.

    j'ai cherché sur les autres forums mais il doit y avoir quelques choses qui m'échappe. Je ne vois pas quoi.

    j'espère que c'est compréhensible

    merci.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par stagemp Voir le message
    Ma variable re est null.
    Je pense que c'est normal vu que dans le code (les bouts que tu nous présentes) je ne vois nul part où tu assignes sa valeur avant de l'utiliser.

    Essaies click droit/rechercher tous les références sur le nom de la propriété et regardes si en dehors de la classe où cette propriété est définie si tu lui assignes bien quelque chose.

  6. #6
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 10
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    Je pense que c'est normal vu que dans le code (les bouts que tu nous présentes) je ne vois nul part où tu assignes sa valeur avant de l'utiliser.
    Elle est assignée après l'appel du web service qui se trouve dans un usercontrol.

    et je pensais qu'avec le setRetour(retourWS) j'aurai pu récupérer mes valeurs dans un autre usercontrol (UCtrl_Retour).

    Je pense que je me suis mal exprimée.

    Sans le code.

    Est-il possible d'assigner une variable dans usercontrol1 et de récupérer sa valeur dans usercontrol2 grâce à un setter?

    merci h2s84 pour ton aide.

  7. #7
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Citation Envoyé par stagemp Voir le message
    Bonjour,

    Mon problème est que je veux garder les données de cet appel en mémoire.

    Ce qui me permettra de réduire le nombre d'appel.

    Je ne sais pas trop comment procéder. j'ai pensé à enregistrer les données dans un

    dataset.

    Je ne veux pas de code. Just une idée.

    J'espère que mon explication est claire.

    Merci pour vos réponses.
    Ce que tu veux faire s'appelle du catching. Tu peux voir ca avec Enterprise Library sur codeplex.

    Tu veux catcher tes données où ? Sur le client ou sur le web service ?
    Saches que les bons candidats aux catching ne sont que les données qui sont casiments statiques, les données qui changent souvent ne sont pas des bons candidats.

    bonne chance.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  8. #8
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 10
    Par défaut
    Merci pour ta réponse Laurent

    Citation Envoyé par WOLO Laurent Voir le message
    Tu veux catcher tes données où ?
    c'est sur le client.

    Citation Envoyé par WOLO Laurent Voir le message
    Saches que les bons candidats aux catching ne sont que les données qui sont casiments statiques, les données qui changent souvent ne sont pas des bons candidats.
    les données changent selon les paramètres passés au web service et c'est assez souvent

Discussions similaires

  1. Stored procedure appelant web service
    Par Michel Garneau dans le forum AS/400
    Réponses: 8
    Dernier message: 30/06/2009, 20h03
  2. Appel Web Service en C++ sous AIX
    Par qiqi1111 dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 16/03/2009, 13h57
  3. [Axis 2] : pb appel web services avec paramètre à null
    Par Foub dans le forum Services Web
    Réponses: 1
    Dernier message: 06/01/2009, 07h31
  4. Problème appel Web Service SharePoint
    Par bugmenot dans le forum Windows
    Réponses: 0
    Dernier message: 14/09/2007, 15h09
  5. [2.0][C#] appel web service
    Par lenoil dans le forum Services Web
    Réponses: 1
    Dernier message: 09/10/2006, 08h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo