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

Windows Communication Foundation .NET Discussion :

IsRequired = true


Sujet :

Windows Communication Foundation .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut IsRequired = true
    Bonjour,

    Je n'arrive pas a bien comprendre l'utilité de cette attribut (IsRequired).
    Cote client comme cote server je ne vois pas ce que cela apporte.

    Je pensais que du cote server (Services WCF) il allait lever une exception.

    Qq un peut il m'eclairer ?

    Merci

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    On va supposer que tu veux parler de la propriété IsRequired de l'attribut DataMember.

    Cette propriété n'a pas de relation directe avec WCF mais pilote la sérialisation de l'objet échangé.

    Si IsRequired est à false et que le flux sérialisé arrive vers le serveur sans ce membre, WCF s'en tamponne; dans le cas contraire, il lève une exception.

    Quel est l'utilité ? tout simplement, l'évolution de DTO.

    Par exemple, tu fais un service qui expose une méthode SendData acceptant un type Data dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    [DataContract]
    public class Data
    {
    [DataMember]
       public string Valeur1
       {
        get;
        set;
       }
    }
    Tout marche bien et tu as des clients qui utilise ton service.

    Plus tard, tu as besoin d'une évolution de ta classe Data par exemple de cette manière :
    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
     
    [DataContract]
    public class Data
    {
       [DataMember]
       public string Valeur1
       {
        get;
        set;
       }
       [DataMember(IsRequired= false)]
       public int AutreValeur
       {
        get;
        set;
       }
    }
    Ici le IsRequired = false permettra aux clients non à jour de continuer à envoyer des instances de Data "ancienne version".

  3. #3
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Merci à toi c'est plus clair.

    Mais y a t il une facon simple d'obliger le client à renseigner les proprietes obligatoire ? (bien que cela sera verifié coté serveur).

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par topolino Voir le message
    Merci à toi c'est plus clair.

    Mais y a t il une facon simple d'obliger le client à renseigner les proprietes obligatoire ? (bien que cela sera verifié coté serveur).
    Une possibilité est de controler par réflexion la valeur de la propriété IsRequired.

Discussions similaires

  1. table en mode insertion et bouton enabled = true
    Par marie253 dans le forum Bases de données
    Réponses: 7
    Dernier message: 09/09/2004, 14h03
  2. ADO et 'Either BOF or EOF is True ...'
    Par exe dans le forum Bases de données
    Réponses: 3
    Dernier message: 18/05/2004, 13h07
  3. fichier de config: refuse tcpip_socket=true.
    Par phil25 dans le forum Installation
    Réponses: 1
    Dernier message: 04/01/2004, 15h55
  4. [EJB2.1 Entity] [BES] CreateException avec ejb.CacheCreate=true
    Par Bobby McGee dans le forum Java EE
    Réponses: 6
    Dernier message: 08/10/2003, 17h11
  5. Valeur par defaut 'True' dans un champ de type bit
    Par Mouse dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/03/2003, 15h26

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