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 :

[SilverLight][WCF] Objet non modifier coté serveur après appel WCF


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 103
    Par défaut [SilverLight][WCF] Objet non modifier coté serveur après appel WCF
    Bonjour,

    Il arrive que lorsque j'envoie un objet en SilverLight via WCF, coté serveur les modifications de mon objet n'ont pas été prise en compte, pas pratique lorsque la méthode sert a faire un update...

    Alors, j'explique l'architecture de mon projet :
    - 1 bib de classe contenant des BO (Business Objects, classe représentant un enregistrement en base)
    - un projet contenant mon WCF avec des objets métiers qui peuvent contenir un BO + properties aux membres du BO.

    Lorsque je manipule mes objets métiers coté SilverLight pour le renvoyer au serveur et faire mon update, et bien jusqu'à la méthode Async(), j'ai le bon objet avec mes modifications. A la réception coté serveur, j'ai mon ancien objet, sans les modifications.
    Je ne comprends pas!

    Mon BO ressemble a ça :

    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
    public class BO
    {
    	protected long m_lId;
    	protected string m_sNom;
     
    	public BO(){}
     
    	public BO(long in_lId, string in_sNom)
    	{
    		this.m_lId = in_lId;
    		this.m_sNom = in_sNom;
    	}
     
    	public long Id
    	{
    		get { return m_lId; }
    		set { m_lId = value; }
    	}
     
    	public string Nom
    	{
    		get { return m_sNom; }
    		set { m_sNom = value; }
    	}
    }
    mon objet métier :

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    [DataContract(IsReference = true)]
    public class MetierBO
    {
    	private BO m_objBO;
     
    	[DataMember]
    	public BO BusinessObject
    	{
    		get
    		{
    			return m_objBO;
    		}
     
    		private set { }
    	}
     
    	[DataMember]
    	public long Id
    	{
    		get
    		{
    			if(m_objBO != null)
    				return m_objBO.Id;
    			else
    				return -1;
    		}
    		private set
    		{
    			if(m_objExerciceBO != null)
    				m_objExerciceBO.Id = value;
    		}
    	}
     
    	[DataMember]
    	public string Nom
    	{
    		get
    		{
    			if(m_objBO != null)
    				return m_objBO.Nom;
    			else
    				return null;
    		}
    		private set
    		{
    			if(m_objExerciceBO != null)
    				m_objExerciceBO.Nom = value;
    		}
    	}
     
    	private MetierBO(BO in_objBO)
    	{
    		this.m_objBO = in_objBO;
    	}
    	//+ regles métier
    }
     
    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
    Par défaut
    Côté serveur, tu persistes bien les changements que tu fais en base (avec un SaveChanges par exemple) ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 103
    Par défaut
    mes méthodes de sauvegardes fonctionnent correctement!
    C'est juste, qu'à la première ligne de mon service, l'objet que je récupère du client n'est pas le même que l'objet retourné par le client!

    ex :
    Mon WCF me retourne une liste d’éléments dont l'un est MonObjet(isOK=false)
    Lorsque j'appelle la méthode d'update, j'envoie MonObjet(isOK=true) et côté serveur, je récupère MonObjet(isOK=false).
    Tout ça avec mon architecture ci dessus, où le BO de ma bibliothèque de classe est encapsulé par mon objet métier.

  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
    Si tu regardes avec Fiddler l'envoi de ton BO à partir de Silverlight, est-ce que c'est la bonne version qui s'en va ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 103
    Par défaut
    Je ne connais pas Fiddler!

    Est-ce bien cet outil?
    http://www.fiddler2.com/Fiddler2/version.asp

  6. #6
    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
    Citation Envoyé par OminiuS Voir le message
    Je ne connais pas Fiddler!

    Est-ce bien cet outil?
    http://www.fiddler2.com/Fiddler2/version.asp
    Oui c'est ça.
    Ca sert de proxy http, il te permettra de voir toutes tes requêtes entre Silverlight et WCF par exemple (il y a une astuce pour le faire fonctionner sur localhost par contre).

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

Discussions similaires

  1. Objets non modifiés.
    Par MickSou dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2012, 13h56
  2. Réponses: 2
    Dernier message: 25/08/2009, 16h46
  3. WebServices & reconstruction des objets coté serveur
    Par Nycos62 dans le forum Services Web
    Réponses: 1
    Dernier message: 02/04/2008, 13h54
  4. [WCF] Récupération de l'instance du service coté serveur
    Par pc152 dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 20/06/2007, 11h06
  5. [POO] balise ou objet non reconnu lors d'un deploiement serveur
    Par benssj5 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/01/2006, 17h26

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