Donc, j'ai essayé de faire des recherches tout au long de la matinée, et je n'ai pas eu de chance. J'essaye de trouver un moyen de créer dynamiquement une méthode/delegate/lambda qui retourne une nouvelle instance d'une certaine classe (inconnue jusqu'à l'exécution) qui hérite d'une certaine classe de base.Création de méthodes dynamiques
Je peux vous garantir ce qui suit au sujet de la classe inconnue/dynamique
- Il sera toujours hériter d'une classe connue (rangée)
- Il aura au moins 2 constructeurs (un en acceptant une longue et une acceptation un IDataRecord)
Je prévois sur les éléments suivants Faire des:
- Trouver tous les c lasses qui ont un attribut sur les
- Création d'un délégué/méthode/lambda/whatever qui crée une nouvelle instance de la classe
- Stockage du délégué/whatever ainsi que quelques propriétés dans une struct/classe
- Insérez la struct dans une table de hachage
- En cas de besoin, retirer l'information de la table de hachage et appeler le délégué/quoi pour obtenir une nouvelle instance de la classe et la renvoyer/l'ajouter à une liste/etc.
Je n'ai besoin d'aide qu'aveC# 2 ci-dessus !!! Je n'ai aucune idée par où commencer. J'ai juste besoin de matériel de référence pour me lancer, ou de quelques mots-clés à mettre dans google.
Ceci est pour un ORM compact/simple à utiliser pour notre bureau ici. Je comprends que ce qui précède n'est pas simple, mais une fois qu'il fonctionne, il devrait rendre le code incroyablement simple.
S'il vous plaît laissez-moi savoir si vous avez besoin de plus d'informations! Et merci d'avance! :)
Jamais vraiment vu un bon usage des expressions, mais vous avez ouvert les yeux un peu :) – Stormenet
j'aime le style, mais il compile à vrai IL et est la performance aussi bien que de new long(); – Andrey
@Andrey: 'expr.Compile()' compile l'expression en vrai IL. La performance est la même que si l'expression lambda était compilée à la compilation, donc c'est aussi bon que possible :-) – dtb