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

C# Discussion :

Utiliser le contenu d'une string pour executer une class


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Points : 56
    Points
    56
    Par défaut Utiliser le contenu d'une string pour executer une class
    Bonjour à tous,

    Bon, tout est dans le titre, imagine que j'ai une variable de type string qui contient la string "test", comment est il possible d'instancier la class test(), par exemple.
    Ce que je veux après, c'est pouvoir instancier la classe ayant le nom identique au contenu de la string.

    Par extension, je voudrais pouvoir faire la même chose avec des contrôles, notamment les "Literal"

    Merci d'avance pour votre aide !

  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
    Avec de la classe Activator et la méthode CreateInstance.
    http://msdn.microsoft.com/en-us/library/d133hta4.aspx
    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 du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Points : 56
    Points
    56
    Par défaut
    Merci pour cette réponse, mais je n'ais pas bien compris ce qu'était l'assembly dans la documentation...

    Serait il possible de me donner un exemple d'utilisation par rapport à l'exemple que j'ai cité dans le topic ?

    Merci d'avance !

    Et QUID du l'utilisation d'une string pour appeler un contrôle ?

  4. #4
    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
    Ben c'est le nom de ton assembly.
    Si tu mets null ça recherche dans l'assembly courante (qui est ce que tu veux je pense).

    Pour les contrôles, tu peux faire un tableau associatif [string, Control].
    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]

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par Skyrunner Voir le message
    Ben c'est le nom de ton assembly.
    Si tu mets null ça recherche dans l'assembly courante (qui est ce que tu veux je pense).
    Bin, le probleme reste le même : c'est quoi en fait un assembly ?

    Citation Envoyé par Skyrunner Voir le message
    Pour les contrôles, tu peux faire un tableau associatif [string, Control].
    Justement non, car le tableau associatif impliquerais que je connais déjà la liste des controles en question, ce qui n'est pas le cas (ne me demandez pas pourquoi, c'est comme ça...).

    J'ai vraiment besoin d'appeler un controle se nommant comme le contenu d'une strig dont je ne connais pas les valeurs possible.

    Et en plus, il me semblais que l'on ne pouvais pas faire de tableau associatif en C#, et apres toute mes recherches, la seule manière que j'ai trouvé pour y palier, c'est d'utiliser un Dictionary, mais si il y a plus simple, explique moi, je suis preneur !

    Merci de te pencher sur mon (mes) problemes ^^

  6. #6
    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
    Citation Envoyé par Assimil Voir le message
    Bin, le probleme reste le même : c'est quoi en fait un assembly ?
    http://dotnet.developpez.com/faq/dot...nitionassembly

    J'ai vraiment besoin d'appeler un controle se nommant comme le contenu d'une strig dont je ne connais pas les valeurs possible.

    Et en plus, il me semblais que l'on ne pouvais pas faire de tableau associatif en C#, et apres toute mes recherches, la seule manière que j'ai trouvé pour y palier, c'est d'utiliser un Dictionary, mais si il y a plus simple, explique moi, je suis preneur !

    Merci de te pencher sur mon (mes) problemes ^^
    Tu fais du winforms ou de l'asp ?

    Si c'est en ASP tu peux utiliser la méthode FindControl non ?
    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]

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Points : 56
    Points
    56
    Par défaut
    Merci, mais j'avais déjà lu la faq, et franchement, je ne trouve pas ça claire du tout... en fait, je ne vois pas ce que je doit mettre en parametre assemblyName dans CreateInstance...

    Citation Envoyé par Skyrunner Voir le message
    Tu fais du winforms ou de l'asp ?

    Si c'est en ASP tu peux utiliser la méthode FindControl non ?
    ASP, mais je débute, et à la base, je suis à fond PHP, et comme je suis en full autodidacte, là, je galaire un max...
    Tu pourrais me montrer un code d'exemple stp ?

    Merci d'avance !

  8. #8
    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
    Citation Envoyé par Assimil Voir le message
    Merci, mais j'avais déjà lu la faq, et franchement, je ne trouve pas ça claire du tout... en fait, je ne vois pas ce que je doit mettre en parametre assemblyName dans CreateInstance...
    Tu dois mette le nom de ton assembly point barre. Normalement c'est le nom de ton projet, après si tu veux instancier un type se trouvant dans une dll externe par exemple, ben il faut connaitre le nom de l'assembly (qui est en général le nom de la dll).

    Tu n'as jamais remarqué le fichier Assembly.cs dans tes projets ?


    ASP, mais je débute, et à la base, je suis à fond PHP, et comme je suis en full autodidacte, là, je galaire un max...
    Tu pourrais me montrer un code d'exemple stp ?

    Merci d'avance !
    Bah il suffit de donner un id à ton control

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Literal Id="toto" runat="server" />

    Ben dans ton code behind tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string s = "toto";
    Literal l = (Literal)this.FindControl(s);
    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]

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par Skyrunner Voir le message
    Tu dois mette le nom de ton assembly point barre. Normalement c'est le nom de ton projet, après si tu veux instancier un type se trouvant dans une dll externe par exemple, ben il faut connaitre le nom de l'assembly (qui est en général le nom de la dll).

    Tu n'as jamais remarqué le fichier Assembly.cs dans tes projets ?
    Bin, le fichier Assembly.cs, il s'appelle Assembly, donc ça aide pas sur le nom de l'assembly.

    Donc, il suffit que je mette le nom de mon projet, et c'est OK ? A part ça, comme je fait pour déterminer le nom d'un Assembly sinon ?
    Et si je veux changer le nom de mon assembly, c'est possible ?


    Citation Envoyé par Skyrunner Voir le message
    Bah il suffit de donner un id à ton control

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Literal Id="toto" runat="server" />

    Ben dans ton code behind tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string s = "toto";
    Literal l = (Literal)this.FindControl(s);
    Parfait, c'est exactement ce dont j'avais besoin, merci beaucoup !

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 92
    Points : 56
    Points
    56

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

Discussions similaires

  1. Lien dans un frame d'une cadre pour ouvrir une autre page sur une même fenêtre
    Par maelislah dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 27/06/2015, 20h39
  2. executer une instruction stockée dans une string
    Par tonnebrre dans le forum VB.NET
    Réponses: 4
    Dernier message: 01/04/2010, 00h23
  3. Executer une requete construite dans une string
    Par gael.mases dans le forum DB2
    Réponses: 3
    Dernier message: 31/10/2008, 09h46
  4. [string] vérifier si une string en contient une autre
    Par vasilov dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/12/2005, 14h50
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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