Dans toutes les formes que nous dérivons de FormBaseControl
, nous avons le code suivant. Je suis sûr qu'il existe un meilleur moyen de taper l'objet contrôleur que celui-ci, mais pour le moment nous l'avons inclus dans chaque page. Dans l'exemple ci-dessous, base.Controller
est de type BaseController
, d'où provient ExportController
. Je trouve la duplication de ce code dans chaque dérivation de FormBaseControl
pour ne pas sentir bon, mais je ne peux pas vraiment trouver une façon de redresser.La duplication ennuyeuse dans les classes dérivées
private ExportController MyController
{
get { return base.Controller as ExportController; }
}
protected void Page_Load(object sender, EventArgs e)
{
base.Controller = new ExportController(WebNavigator.Current);
Je ne peux pas changer BaseController pour prendre un paramètre de type générique – ProfK
Ah, vous êtes alors enculés :) OK. Qu'en est-il de l'insertion d'une classe intermédiaire dérivée de BaseController qui prend un générique. Alors les autres classes peuvent en dériver. –
Votre solution semble confondre la base du contrôleur et la base de la page, car MyController sur la page de base doit renvoyer un contrôleur. Si cela retourne ceci, le T va échouer. – ProfK