Dans ASP.Net Web Forms, il y a des cas que j'ai rencontrés pour créer du code dépendant d'une commande. Comme une odeur de code évidente je cherche des solutions pour résoudre ce problème.Comment éliminer ces dépendances d'ordre de mon code
Un exemple pseudo-code serait:
appelle le code :: Page.aspx
protected void Page_Load(...) {
var control = LoadControl("ControlX.ascx");
// Ugly since the control's constructor is not used by LoadControl
control.SetDependencies(...);
}
Control Code :: ControlX.ascx
public void SetDependencies(...) {
}
protected void Page_Load(...) {
if (dependencies are null)
throw Exception();
else
ContinueProcessing();
}
LoadControl
a deux signatures, le one used above accepte une chaîne pour le contrôle c lasse l'emplacement physique et crée correctement les contrôles enfants. Alors que second signature accepte la classe de contrôle en tant que type de classe, et tous les paramètres pour le constructeur, cependant les contrôles enfants sont pas créé comme détaillé dans TRULY Understanding Dynamic Controls. Alors, comment puis-je éliminer cette dépendance d'ordre de la manière la plus propre? Ma première pensée est que si j'ai créé dynamiquement les contrôles enfants dans ControlX
, mais cela peut être lourd pour les contrôles plus importants. Pensées?
Oui, vous avez bien compris. C'est certainement quelque chose qui fonctionnerait. –