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

ASP.NET Discussion :

[C#] Recuperer les proprietes publiques d'un .ascx


Sujet :

ASP.NET

  1. #1
    Membre habitué Avatar de akecoocoo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 78
    Points : 146
    Points
    146
    Par défaut [C#] Recuperer les proprietes publiques d'un .ascx
    Je dispose d'une liste de fichiers UserControl (.ascx), possédant tous la propriété publique "string numeropage;".

    Je souhaite parcourir tous mes fichiers .ascx et récupérer la valeur "numeropage" pour chacun d'entre eux.

    Mon espace de travail s'intitule "MonEspace", mes contrôles héritent de "MonEspace.rubrique.(nomdelobjetdérivédeControl)", lorsque je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    rubrique.objetXX obj=(rubrique.objetXX)LoadControl("objetXX.ascx");
    string numero = obj.GetType().GetProperty("numeropage").GetValue(obj,null).ToString();
    VS2003 m"indique que la propriete numeropage n'existe pas !
    pourtant si je replace la deuxième ligne par Response.Write(obj.numeroligne), je retrouve bien la valeur stockée dans mon fichier ascx.cs....

    que doit on faire pour récupérer les propriétés que l'on ajoute manuellement ?

  2. #2
    Membre régulier Avatar de chman
    Inscrit en
    Novembre 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 94
    Points : 97
    Points
    97
    Par défaut
    salut,

    tu mets obj.numeropage puis obj.numeroligne, c'est pas ça l'erreur ?

    sinon pourquoi faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string numero = obj.GetType().GetProperty("numeropage").GetValue(obj,null).ToString();
    alors que obj.numeropage fonctionne ?

  3. #3
    Membre habitué Avatar de akecoocoo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 78
    Points : 146
    Points
    146
    Par défaut
    non non c'est plus ou moins une faute de frappe...
    c'est bien obj.numeropage qui fonctionne

    je ne peux utiliser obj.numeropage car je ne peux caster l'element obj en réalité...

    je charge toutes les pages ascx d'un repertoire, chacune de ces pages est liée à une classe unique, ainsi à annuaire.ascx correspond le type rubrique.annuaire, à onglets.ascx correspond le type rubrique.onglets

    LoadControl me retourne un objet Control (que j'appelle obj)
    obj ne dispose pas de la propriété publique "numeropage", il faut que je le cast en rubrique.annuaire pour cela

    comme tous les éléments de mon répertoire ont des noms de classe bien à eux (rubrique.quelquechose), je ne peux faire de cast.. il faut que je transtype (et je ne sais pas trop comment... vu que System.Convert me retourne une exception) obj vers rubrique.quelquechose ( je stocke dans mon programme une chaine de caractère qui me permet de connaitre le type de mon objet)

    pour l'instant les problèmes de transtypage ne sont pas au gout du jour... ce qui m'ennuie vraiment, c'est que GetProperty ne trouve pas la propriété numeropage qui existe réellement dans mon objet..... (public string numeropage="3"; par exemple)

    alors je ne sais pas, j'arrive à récupérer d'autres propriétés standards comme .Text ou .ID, mais je trouve nul part comment obtenir des propriétés propres à mes classes

    help.....

  4. #4
    Membre habitué Avatar de akecoocoo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 78
    Points : 146
    Points
    146
    Par défaut
    ouééé j'ai trouvé ce qui clochait
    dans mes fichiers ascx je déclarais ma propriété via
    public string numeropage="xxx";

    j'ai changé cela en :
    public string numeropage { get { return "xxx"; } }
    et la magie aidant, ca fonctionne...... la vie est belle, je vais aller voir shrek2 pour fêter ça

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par akecoocoo
    ouééé j'ai trouvé ce qui clochait
    dans mes fichiers ascx je déclarais ma propriété via
    public string numeropage="xxx";
    => Field

    Citation Envoyé par akecoocoo
    j'ai changé cela en :
    public string numeropage { get { return "xxx"; } }
    => Property

    Résultat logique vu le nom de la méthode que tu utilises pour récupérer la propriété.

    Soit dit en passant, c'est pas plus mal que tu aies eu ce 'problème', vu que la première version, un membre public, mérite d'être fouetté avec un bouquin de POO.

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

Discussions similaires

  1. Recuperer les proprietes d'un fichier
    Par Snykito dans le forum Langage
    Réponses: 8
    Dernier message: 02/07/2015, 09h15
  2. recuperer les proprietes systeme
    Par gaut dans le forum C++
    Réponses: 5
    Dernier message: 23/10/2009, 10h08
  3. recuperer les proprietes dun projet
    Par miniseb dans le forum Framework .NET
    Réponses: 2
    Dernier message: 08/10/2007, 11h35
  4. Réponses: 6
    Dernier message: 24/08/2006, 12h17
  5. [net] recuperer les proprietes d'un File via une URL
    Par mma dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 06/05/2004, 12h45

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