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

Silverlight Discussion :

Problème d'appels aux services


Sujet :

Silverlight

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Problème d'appels aux services
    Bonjour à tous,

    J'ai un problème avec les appels aux services à partir d'un client Silverlight.

    Un petit exemple :

    Lorsque je valide un formulaire, et que je passe par un service pour enregistrer en base de données, tout va bien, je passe une fois dans le service.
    Si je clique à nouveau sur ce bouton, cela va bien m'enregistrer les informations en base, mais passer deux fois dans le service.
    Si je clique encore une fois, cela passera trois fois dans le service. Puis 4, 5 etc.

    Tout cela se passe lorsque je reste sur le formulaire sans rafraîchir la page.
    J'espère être clair...

    Savez-vous comment régler ce problème ?

    Merci d'avance !

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Montre nous le code que tu utilises, car dis comme ça, je pense que tu t'abonnes plusieurs fois à un Event

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Alors je précise que je suis en MVVM.

    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
     
    public class NouvelleMissionVM : ViewModelBase
        {
     
     
               public TAFServicesClient client;
               public ICommand OkCommand { get; internal set; }
     
     
             public NouvelleMissionVM()
             {
                this.InitCommandes();
              }
     
             private void InitCommandes()
             {
                OkCommand = new RelayCommand(() => OkCommandAction());
              }
     
     
            private void OkCommandAction()
             {
                  client.GetMissionsByIdRessourceCompleted += new              EventHandler<GetMissionsByIdRessourceCompletedEventArgs>   (client_GetMissionsByIdRessourceCompleted);
                client.GetMissionsByIdRessourceAsync(this.SelectedItemRessource.IdRessource);
            }
     
     
           void client_GetMissionsByIdRessourceCompleted(object sender, GetMissionsByIdRessourceCompletedEventArgs e)
            {
              MessageBox.Show("test");
            }
     
    }
    Donc dans ce cas là, lorsque je clique sur "Ok", je verrai "test" apparaître une fois. Si je clique encore une fois "Ok", la MessageBox "Test" apparaît 2 fois. Puis 3 etc.

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 082
    Points
    8 082
    Par défaut
    Comme précisé par Thomas plus haut, a chaque fois que tu cliques, tu créer un nouvel abonnement (via le +=)

    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
     
            private void OkCommandAction()
             {
                  client.GetMissionsByIdRessourceCompleted += client_GetMissionsByIdRessourceCompleted;
                client.GetMissionsByIdRessourceAsync(this.SelectedItemRessource.IdRessource);
            }
     
     
           void client_GetMissionsByIdRessourceCompleted(object sender, GetMissionsByIdRessourceCompletedEventArgs e)
            {
              if(sender is TAFServicesClient)
                  (sender as TAFServicesClient).GetMissionsByIdRessourceCompleted -= client_GetMissionsByIdRessourceCompleted;
     
              MessageBox.Show("test");
            }

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Ah oui, c'est exact... Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/03/2014, 01h15
  2. Problème d'appel Web Service
    Par splinternabs dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 04/08/2013, 14h41
  3. Problème d'appel de service
    Par manu7607 dans le forum InfoPath
    Réponses: 1
    Dernier message: 19/10/2009, 14h01
  4. Réponses: 6
    Dernier message: 13/10/2009, 16h29
  5. Problème appel Web Service SharePoint
    Par bugmenot dans le forum Windows
    Réponses: 0
    Dernier message: 14/09/2007, 15h09

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