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

Framework .NET Discussion :

[Type "var"] Comment récupérer les propriétés de l'objet ?


Sujet :

Framework .NET

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 22
    Points : 13
    Points
    13
    Par défaut [Type "var"] Comment récupérer les propriétés de l'objet ?
    Bonjour à tous,

    Je rencontre souvent le meme probleme, et bien qu'à chaque fois je le contourne, j'aimerai connaitre la vrai solution.

    Voici une fonction LINQ qui me retourn un object :

    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
     
    public static object MyFunction(int ID)
    {
        TableDataContext db = new TableDataContext();
     
        var objTable = from OneObj in db.ThisTable
                       where OneObj.ID == ID
                       select new
    		   (
    			JusteCettePropriete = OneObj.ID,
    			EtCelleCi = OneObj.Name,
    		   );
     
        return objTable.SingleOrDefault();
    }
    Maintenant ma question est toute bete :
    Lorsque j'appel ma fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    object OrVar = MyFunction(MYID) ;
    Comment faire pour récupérer mes deux proprieté ?
    "OrVar.JusteCettePropriete" ne peut pas fonctionner puisque la variable n'est pas typé !

    Existe t-il une solution ?
    Merci par avance

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Je pense qu'il faut que tu utilises une classe du coup.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  3. #3
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    les objets anonymes c'est pas fait pour se balader entre les méthodes ...

    Du moins en attendant MEF

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Ok, merci de vos réponses.

    Ce n'est pas fait pour se ballader peut etre, mais j'ai besoin de tte ces info en retour. Donc la solution est de créer une classe expres ?

    MEF ?! Jamais entendu parlé. Une petite recherche sur google me sors "Managed Extensible Framework". Je vais regarder ca de plus pres alors !
    Merci

    Pourtant je me souviens d'une présentation de LINQ, où il est bien dit que l'avantage de LINQ est qu'il peut ne pas ramener des résultats "carré".

    J'ai pris un exemple simple, mais nous pourrions imaginer de ramener en un seul objet 'var' une liste de fournisseur, ainsi que tous leurs produits (ceci est expliqué dans cette video : http://www.microsoft.com/france/visi...5-12DA9300C9D4 ).

    L'interet est de faire un truc comme ceci :
    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
     
    <asp:DataList ID="fournisseur" runat="server" DataSourceID="ILAPPELMAFONCTION" >
    <ItemTemplate>
     
    	<asp:Label ID="Name" runat="server" Text='<%# Eval("Fournisseur_Name") %>' />
     
    	<asp:DataList ID="produit" runat="server" DataSource='<%# Eval("SESPRODUITS") %>' >
    	<ItemTemplate>
    		<asp:Label ID="Product" runat="server" Text='<%# Eval("Product_Name") %>' />
     
    	</ItemTemplate>
    	</asp:DataList>
     
    </ItemTemplate>
    </asp:DataList>
    Donc si tu mdis que les objets anonymes sont pas fait pour se ballader entre méthodes... Bah a quoi ca sert et pourquoi ils ont montré ca alors

  5. #5
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Parceque là (je suppose, j'ai pas regardé la vidéo) le resultat est directement liée à une dataListe. Il ne le renvoit pas par une fonction comme tu souhaites le faire.
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  6. #6
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    ou alors faut se les trimballer sous forme d'objet tout le long mais dans une réel appli c pas le top ...

    MEF cela permet (entre autre) le duck typing qui permet de "liberer" les objets anonyme

    y a une bonne explication ici : http://en.wikipedia.org/wiki/Duck_typing

    perso c'est une façon de faire que j appreci beaucoup dans pas mal de cas que l'on retrouve dans le langage python.

    En gros en sortie de ta méthode tu aurais pu mettre ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    interface IMonType{
    long JusteCettePropriete{get;}
    string EtCelleCi{get;}
    }
    Mais bon c'est pas avant un moment dans le framework .net ... ptetre pour la 4.0

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Points : 627
    Points
    627
    Par défaut
    Salut,

    pour faire du duck typing avec le Fx actuel, tu peux essayer de regarder du coté du framework de Philip Laureano : LinFu (et plus precisement les DynamicObject).

    Il vient de freezer recemment (30/07) le developpement de la 1.0 (la finale est telechargeable sur googlecode) pour s'attaquer à la refonte de son framework.

    NB : c'est sous LGPL à tout hasard.

  8. #8
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    c'est pas mal merci pour le lien.

    Hélas c'est moyennement intégré a C#

Discussions similaires

  1. Comment récupérer les propriétés d'un fichier ?
    Par Leniouns dans le forum Général Java
    Réponses: 16
    Dernier message: 16/12/2011, 08h44
  2. Comment récupérer les propriétés d'un fichier en JS ?
    Par Zebulon777 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 08/10/2010, 12h37
  3. Comment lister les propriétés d'un objet ?
    Par Walterbelo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/03/2010, 17h30

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