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 :

Utilisation d'interfaces via les services WCF


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut Utilisation d'interfaces via les services WCF
    bonjour,

    voilà j'ai une application Silverlight qui communique via WCF pour récupérer des listes d'objets.

    Admettons une liste de personnes.

    dans mon service, je retourne donc une List<Personne>. Cela me permet donc côté Silverlight de référencer ce service et d'exploiter ma liste en ObservableCollection<Personne>.

    J'aimerai faire la même chose mais en utilisant cette fois dans mon service des listes d'interfaces List<IPersonne>. Je peux référencer ce service sans problème, mais je ne peux pas côté Silverlight créer de ObservableCollection de ces interfaces.

    Peux t on utiliser les interfaces ou faut il les caster en "Personne" dans mon service WCF?

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Dans ton services, tu utilises une List<IPerson>.

    Coté Silverlight, tu créés une ObservableCollection<Person> et tu ajoutes les éléments contenus dans la liste.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    c'est ce que je pensais, mais maintenant avec l'utilisation d'interfaces, il ne connait plus le type d'objet "Personne".
    J'ai oublié de présenter l'architecture de mon application:

    côté Silverlight:
    * un projet View
    * un projet ViewModel&Model, qui contient mes ViewModel et mes classes proxy générées au référencement des services, qui sont mon model.

    côté "projets .net":
    * mon projet Web contenant mon xap, ma page de démarrage aspx, et mes services WCF Silverlight
    * un projet controleur
    * un projet metier qui revois ma liste de IPersonne
    *un projet Entite, qui contient ma classe Personne en internal et son interface IPersonne en public.

    après peut être que mon architecture n'est pas approprié je ne sais pas...

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Est-ce que tu as décoré les objets qui implémentent IPersonne de l'attribut DataContract ?

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 203
    Par défaut
    Tu peux utiliser le NetDataContractFormatSerializer si tu veux serialiser une interface
    http://weblogs.asp.net/avnerk/archiv...erializer.aspx

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    Voici ce que contient mon service WCF:

    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
    using System;
    using System.Linq;
    using System.Runtime.Serialization;
    using System.ServiceModel;
    using System.ServiceModel.Activation;
    using System.Collections.Generic;
    using System.Text;
    using Controleur;
    using Entite;
     
    namespace AppliMVVM.Web
    {
        [ServiceContract(Namespace = "")]
        [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
        public class ServicePersonnel
        {
            private ControleurPersonnel ctrPerso;
     
            public ServicePersonnel()
            {
                ctrPerso = new ControleurPersonnel();
            }
     
            [OperationContract]
            public List<Personnel> listePersonnel()
            {
                return ctrPerso.ListerPersonnel();
            }
     
            [OperationContract]
            public void ajouterPersonnel(int num, string nom, string prenom, string mail, string fonction)
            {
                ctrPerso.ajouterPersonnel(num, nom, prenom, mail, fonction);
            }
     
            [OperationContract]
            public void viderListe()
            {
                ctrPerso.viderListe();
            }
        }
    }
    maintenant je ne sais pas trop comment modifier le return de mon listePersonnel. Là il retourne des objets Personnel, et j'aimerai que ça soit des IPersonnel...

Discussions similaires

  1. transfère de données via le service wcf
    Par moezBH dans le forum Windows Phone
    Réponses: 4
    Dernier message: 04/05/2011, 17h34
  2. Réponses: 3
    Dernier message: 26/09/2010, 15h38
  3. Réponses: 6
    Dernier message: 04/08/2010, 15h21
  4. Comment renvoyer un document XML via un service WCF?
    Par 404error dans le forum Services Web
    Réponses: 1
    Dernier message: 01/09/2009, 23h59
  5. [MFC] Faible utilisation des sockets via les MFC ?
    Par Yellowmat dans le forum MFC
    Réponses: 1
    Dernier message: 25/08/2005, 17h15

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