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 :

Service WCF et méthode des Objets


Sujet :

Services Web

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 20
    Par défaut Service WCF et méthode des Objets
    Bonjour

    J'aimerais savoir comment est il possible d'appeler les méthode d'une classe ayant <DataContract()>.

    Je m'explique, j'ai un contrat de service, une classe d'implémentation qui elle retourne un objet "Produit"
    Dans la classe "Produit" j'ai mis <DataContract()> en haut, des <DataMember()> et des <OperationContract()>, mais il n'y a que les propriété que je peux voir côté client, pas les méthodes.
    Est ce normal ?, comment voir les méthodes

    Info : je travail en VB.Net et le service est déstiné à un application Silverlight.

    Merci à tous.

  2. #2
    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
    Par défaut
    Ah mais non non non! C'est pas fait pour ca!
    Tu transportes des entités (des ressources en fait) mais ca ne sont pas forcément des objets. Tu ne peux pas transporter des méthodes.

  3. #3
    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 timlartiste Voir le message
    Bonjour
    Je m'explique, j'ai un contrat de service, une classe d'implémentation qui elle retourne un objet "Produit"
    Non, une classe d'implementation de ton contrat de service ne peut pas retourner un quelque chose, ce sont les methodes qui retournent des données;

    Citation Envoyé par timlartiste Voir le message
    Bonjour
    Dans la classe "Produit" j'ai mis <DataContract()> en haut, des <DataMember()> et des <OperationContract()>, mais il n'y a que les propriété que je peux voir côté client, pas les méthodes.
    Est ce normal ?, comment voir les méthodes
    Non si la classe Produit est un datacontrat, elle ne doit pas avoir des methodes à publier et qui seront visibles côté client. Toutes les méthodes qui seront disponibles côtés client doivent être implémentées dans la classe d'implementation de ton contrat de service.

    Un exemple pour illustrer :

    Ici, tu as le contrat (Interface) de service
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    [ServiceContract]
        public interface IBon_Reception
        {
     
            [OperationContract()]
            List<Bon_Reception> Bon_Reception_SelectByDepot(string dep_Design);
     
            [OperationContract()]
            int Bon_ReceptionWithDetails_Insert(Bon_Reception br);
        }
    Son implementation ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
                         ConcurrencyMode = ConcurrencyMode.Multiple)]
         public partial class StockService : IBon_Reception
        {
                   List<Bon_Reception> IBon_Reception.Bon_Reception_SelectByDepot(string dep_Design)
            {
                return ExManager.Process(() => BLL.Bon_Reception_SelectByDepot(dep_Design), null, EXCEPTION_POLICY); ;
            }
     
            int IBon_Reception.Bon_ReceptionWithDetails_Insert(Bon_Reception br)
            {
                return ExManager.Process(() => BLL.Bon_ReceptionWithDetails_Insert(br), -1, EXCEPTION_POLICY);
            }
    }
    et enfin le datacontrat :

    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
    [DataContract]
        public partial class Bon_Reception
        {
            [DataMember]
            public long Rec_id { get; set; }
     
            [DataMember]
            public string Rec_Ref { get; set; }
     
            [DataMember]
            public DateTime Rec_date { get; set; }
     
            [DataMember]
            public string Rec_UserID { get; set; }
     
            [DataMember]
            public string Dep_design { get; set; }
     
        }
    Attention, un datacontrat est normalement une écriture simplifiée d'un schéma xml, il s'agit des types de données échangées entre le client et le service, oublie le polymorphisme et tous ce que tu connais en poo dans un premier temps.

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

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 20
    Par défaut
    Donc si j'ai bien compri je peu supprimer tout les <OperationContract()> de ma classe "Produit" alors ?

  5. #5
    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
    Oui, si c'est un datacontrat, ca ne sert à rien tu peux supprimer.

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

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 20
    Par défaut
    Merci pour ces précision et pour ton aide Laurent.

    Réponse faite, forum résolu.

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

Discussions similaires

  1. WCF RIA Services/Entity Framework, perte des objets connexes
    Par jeanjean40 dans le forum Services Web
    Réponses: 3
    Dernier message: 18/09/2012, 13h17
  2. Réponses: 21
    Dernier message: 03/06/2010, 18h26
  3. Récupération des résultats des méthodes dans un service WCF
    Par est09 dans le forum Windows Communication Foundation
    Réponses: 16
    Dernier message: 02/04/2009, 16h44
  4. Accès aux services WCF sans paramétrage des adresses dans les endpoint
    Par eric39 dans le forum Windows Communication Foundation
    Réponses: 0
    Dernier message: 25/03/2009, 11h16
  5. [PHPTAL] gestion des méthodes des Objets
    Par ronio dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 06/03/2006, 14h29

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