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 :

fonction qui retourne un boolean en RIA services


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut fonction qui retourne un boolean en RIA services
    Bonjour,

    Je peux faire une fonction coté server qui me ramène par exemple un boolean, en version simplifiée, celà donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      <Invoke()> _
        Public Function testBool() As Boolean
            Return True
        End Function
    la fonction testBool devrait donc me retourner toujours "true".

    Coté client, si je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim bbb As Boolean = False
            Dim ctx As New J_Context 'ça c'est mon contexte
     
            bbb = ctx.testBool()
    il me dit :
    Value of type 'System.ServiceModel.DomainServices.Client.InvokeOperation(Of Boolean)' cannot be converted to Boolean
    Visiblement, ma fonction ne me retourne pas comme prévu un boolean mais un invokeOperation (Of Boolean) ??

    Est-ce la bonne méthode ?
    et si oui, comment convertir mon "of Boolean" en boolean ?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Les appels de service web en Silverlight sont toujours asynchrones, de façon à ne pas bloquer le thread d'interface graphique. Donc la méthode testBool ne renvoie pas un Boolean, mais un objet qui représente l'appel à la méthode. Il faut s'abonner à l'évènement Completed de l'objet InvokeOperation, pour être notifié quand l'appel se termine:

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            Dim ctx As New J_Context 'ça c'est mon contexte
            Dim op As InvokeOperation(Of Boolean) = ctx.testBool()
            AddHandler op.Completed, AddressOf testBool_Completed
     
     
    ...
     
        Private Sub testBool_Completed(ByVal sender As Object, ByVal e As EventArgs)
            Dim op As InvokeOperation(Of Boolean) = CType(sender, GetType(InvokeOperation(Of Boolean)))
            Dim b As Boolean = op.Value
            ' Fais ce que tu as à faire avec la valeur...
        End Sub

    Il y a peut-être plus simple, mais je connais pas très bien WCF Ria Services... quelqu'un d'autre aura peut-être une meilleure solution

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Merci Tomlev pour tes explications et ton code.

    Un seul petit changement dans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Dim op As InvokeOperation(Of Boolean) = CType(sender, GetType(InvokeOperation(Of Boolean)))
    à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Dim op As InvokeOperation(Of Boolean) = CType(sender, InvokeOperation(Of Boolean))

    voici un petit exemple qui me retourne le double de l'integer que j'ai passé en paramètre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
            Dim ctx As New J_Context
            Dim op As InvokeOperation(Of Integer) = ctx.testDoubleInteger(33)
            AddHandler op.Completed, AddressOf testDoubleInteger_Completed
     
     
        End Sub
     
        Private Sub testDoubleInteger_Completed(ByVal sender As Object, ByVal e As EventArgs)
            Dim op As InvokeOperation(Of Integer) = CType(sender, InvokeOperation(Of Integer))
            Dim b As Integer = op.Value
     
            MessageBox.Show(b.ToString)
        End Sub

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Golzinne Voir le message
    Un seul petit changement dans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Dim op As InvokeOperation(Of Boolean) = CType(sender, GetType(InvokeOperation(Of Boolean)))
    à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Dim op As InvokeOperation(Of Boolean) = CType(sender, InvokeOperation(Of Boolean))
    Ah oui pardon... la syntaxe de VB et moi, ça fait 3

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

Discussions similaires

  1. Fonction qui retourne plusieurs valeurs !
    Par casafa dans le forum C++
    Réponses: 20
    Dernier message: 23/04/2014, 16h56
  2. [PL/SQL] Fonction qui retourne plusieurs valeurs
    Par Loko dans le forum Oracle
    Réponses: 2
    Dernier message: 07/12/2004, 09h43
  3. Réponses: 7
    Dernier message: 03/12/2004, 12h40
  4. Fonction qui retourne un tableau
    Par _lara_ dans le forum ASP
    Réponses: 6
    Dernier message: 24/05/2004, 15h06
  5. Réponses: 14
    Dernier message: 09/04/2004, 13h44

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