2010-10-14 9 views
0

Je cherche à générer des types dynamiquement, c'est-à-dire. TypeBuilder, Reflection.Emit .. Est-il toujours possible d'obtenir l'achèvement du code au moment du design pour ces types créés? i.e typename reconnaissance, liste des propriétés après avoir tapé "obj1." et autres.Est-il possible d'obtenir l'achèvement du code au moment du design pour les types dynamiques?

Contexte complet: Tentative de génération d'entités et d'objets d'accès aux données correspondant aux tables de base de données au moment de l'exécution. La génération de code est une option, mais je voulais voir si je pouvais m'en passer. Avoir une certaine expérience dans la réflexion, mais aucune dans le type de construction de la réflexion.

+0

Si vos types sont émis au moment de l'exécution, comment pourriez-vous espérer obtenir du code sur eux au moment du design? Ou suggérez-vous la génération de code d'exécution, de telle sorte que les assemblées générées continuent d'exister une fois l'application terminée? –

+0

Voilà ce que je pense aussi. Mais je voulais savoir s'il y avait un moyen. Un nouvel assemblage est défini lors de la création d'un nouveau type avec TypeBuilder, et si cet assemblage pouvait en quelque sorte être "accroché" au code visuel studio-complétion comme d'autres assemblées dans le projet, ce serait possible. – henginy

+0

Non, j'essaie d'éviter la génération de code. – henginy

Répondre

1

Probablement sans un concepteur sérieux. Le code émis n'est pas réellement généré avant l'exécution, ce qui signifie qu'il n'est pas réellement disponible au moment du design. Vous pouvez utiliser des modèles T4 pour générer vos types de cette façon, car le concepteur va évaluer les modèles pour construire les types requis, qui sont bien sûr immédiatement disponibles au moment du design.

+0

Merci, je vais essayer ça. – henginy

Questions connexes