J'ai créé ma propre classe de base CustomController qui hérite de Controller. De même, j'ai créé mon propre CustomViewData qui hérite de ViewDataDictionary. La classe CustomController a un ctor qui accepte un paramètre CustomViewData en tant que paramètre.Modification du type de ViewData dans le contrôleur étendu
Tous mes contrôleurs héritent de CustomController et transmettent leur CustomViewData hérité. Maintenant, je veux être en mesure d'appeler this.ViewData à partir de mon contrôleur et de récupérer les données d'affichage que j'ai transmis au contrôleur. Actuellement, je récupère un ViewDataDictionary (de la classe Controller). J'ai donc perdu mes informations de type. Comment puis-je conserver mes informations de type sur ma propriété ViewData dans ma classe dérivée de CustomController sans l'encapsuler dans un get/set qui fait la boxe pour moi?
pense que quelque chose dans le sens de la suggestion de Gerardo est le chemin à parcourir. vous voulez vraiment éviter le casting hé –
Oui, si je pouvais, je ne le ferais pas. Mais lorsque je crée une instance dans le contrôleur hérité avec le nouveau mot-clé, puis modifiez l'état de ViewData dans customController, l'état n'est pas représenté dans le contrôleur hérité. Le nouveau mot-clé cache essentiellement le précédent (le rend inaccessible, mais toujours existant) donc il y aura maintenant deux instances de viewdata. ContengController.ViewData (est CotengViewData) et un dans InheritedController.ViewData (est InheritedViewData). –
Appelez votre personnalisé quelque chose d'autre alors? comme dans: propriété CustomViewData de type CustomViewData. –