J'écris un formbuilder pour notre CMS qui charge dynamiquement des contrôles sur mesure dans des panneaux dans un répéteur. Les contrôles sur mesure dont tout hérite, disons 5arx.FormBuilder.FormControl, une classe de base qui définit des méthodes abstraites pour initialiser, valider, repeupler, rassembler des données soumises à partir de celles-ci. Les contrôles s'étendent de simples champs de texte à des contrôles complexes composites côté client.Des contrôles ajoutés dynamiquement finissent enveloppés dans un type générique?
Tout fonctionne très bien, mais j'ai remarqué quelque chose que je trouve anormal. Au cours de l'écriture du code pour récupérer les contrôles de formulaire. rassembler leurs données et les conserver dans ma base de données J'ai remarqué que leur type revient à la façon dont les objets sont tapés si vous écrivez votre code dans le mode «projet de site Web (v. irritant) VS».
Ainsi, par exemple un contrôle qui est défini comme vivant dans un espace de noms et d'être de type
Sarx.FormBuilder.FormControl.MyBespokeControl5arx.FormBuilder.FormControl.MyBespokeControl
lors de l'exécution indique le type (par simple appel à GetType()) comme étant du type:
ASP.5arx_FormBuilder_FormControl_MyBespokeControl
Obtenir la propriété BaseType récupérera correctement la classe sous-jacente, mais il me laisse perplexe pourquoi cela devrait se produire. D'autant plus que j'ai passé une grande partie de l'été à refactoriser notre application de sa forme originale en projet VS Website (complète avec code partagé dans le dossier App_Code et autre méchanceté) au projet d'application web correct (IHMO) + supportant les librairies claass afin que nous ayons le contrôle de nos espaces de noms et ne pas avoir tout compilé dans l'espace de noms ASP.x :-(
J'apprécierais vraiment une explication/clarté
EDIT:. modifié (hypothétique) par exemple espace de noms racine
@Will - Pourquoi avez-vous supprimé les échanges qui ont suivi? Pas tant de modération que de censure. Je demande que le contenu soit rétabli. – 5arx
@MichaelPetrotta - vous avez pris beaucoup de peine à castrer cette question, mais omis d'exciser la phrase incriminée. > Disons '5arx. – 5arx
@ 5arx: Pas de problème du tout. Je ne sais pas ce que vous voulez dire par offense à la phrase - on dirait qu'il y a eu une discussion animée avant d'arriver ici.Si vous voulez le supprimer, modifiez simplement votre question. –