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 :

Créer des classes dynamiquement à partir d'une classe générique [Débutant]


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Retraité éveillé
    Inscrit en
    Février 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité éveillé

    Informations forums :
    Inscription : Février 2019
    Messages : 4
    Par défaut Créer des classes dynamiquement à partir d'une classe générique
    Bonjour,

    Est-il possible de créer dynamiquement (au run-time uniquement) des classes qui héritent totalement (méthodes, propriétés, ...) d'une classe générique ?
    Si oui comment ?
    Est-ce que les instances de telles classes s'utilisent de la même façon que celles des classes codées ?
    Est-ce que l'utilisation de telles classes n'impactera pas les performances ?

    J'ai cherché dans la documentation et dans les forums.
    On trouve facilement des indications pour créer des classes dynamiques (long mais faisable) mais je n'ai rien trouvé pour créer en dynamique à partir d'une classe générique.

    Merci pour votre aide.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    il y a plusieurs possibilités
    les plus fort émit de l'IL, mais c'est réservé à l'élite je pense

    en plus simple il y a la compilation à la volée, à savoir générer du code c# dans un string, demander sa compilation, récupérer l'assembly généré en RAM, rechercher les types dessus etc...
    là on peut donc hériter d'une classe et mettre du code au passage
    avec la compilation à la volée on perd entre 10 et 200ms de compilation selon la longueur du code, après c'est aussi transparent que du code normal, enfin surtout si tu te bases sur un type de base sans avoir à faire d'invoke

    après si c'est juste pour créer une classe qui hérite d'une autre mais sans code dedans il y a typebuilder ou un truc dans le genre (je peux rechercher la syntaxe exacte si c'est ca que tu as besoin)
    là c'est encore plus performant, mais on ne peut pas ajouter de code dans ces classes, juste leur donner un nom (sauf si on part dans l'émit du coup)
    en wpf on peut y ajouter des dependency properties au passage donc c'est ca reste simple et pratique

    bref ca dépend de ce que tu veux faire avec
    ce qui est normalement le plus important à préciser, car on peut facilement tomber dans le problème xy
    à savoir on veut faire un truc x, on pense qu'il faut faire un truc y pour y arriver, on demande comment faire y alors qu'en exposant le problème x on peut vous orienter vers un truc beaucoup mieux que y ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre à l'essai
    Homme Profil pro
    Retraité éveillé
    Inscrit en
    Février 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité éveillé

    Informations forums :
    Inscription : Février 2019
    Messages : 4
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    il y a plusieurs possibilités
    ce qui est normalement le plus important à préciser, car on peut facilement tomber dans le problème xy
    à savoir on veut faire un truc x, on pense qu'il faut faire un truc y pour y arriver, on demande comment faire y alors qu'en exposant le problème x on peut vous orienter vers un truc beaucoup mieux que y ...
    Bonne remarque, merci de m'avoir remis en mémoire un vieux conseil "pourquoi faire simple lorsqu'on peut faire compliqué".
    J'ai restructuré la solution et ... je n'ai plus besoin de classe dynamique.
    Ce qui me paraissait être la bonne solution est en fait beaucoup plus complexe que celle trouvée simplement en regardant le problème sous un autre angle.

    J'ai toutefois regardé ce que permet typebuilder, ce qui pourra m'être utile pour d'autres besoins.

    Merci encore Pol63.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/06/2015, 11h09
  2. Créer des cube a partir d'une base de données (oracle) avec talend
    Par tahabers dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 18/02/2015, 11h30
  3. Créer des fichiers excel à partir d'une feuille et d'une liste
    Par chmouf dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/05/2014, 20h57
  4. Créer des feuilles excel à partir d'une liste+données
    Par sof_011 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/11/2013, 15h14
  5. créer des array numéroté à partir d'une liste
    Par tavarlindar dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/05/2008, 18h50

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