Pourquoi les fichiers de code-behind ASPX déclarés comme des classes partielles?
-
19-09-2019 - |
Question
Pourquoi le code derrière une classe partielle pour les pages ASPX?
La solution
Je vous renvoie à cette MSDN page s (ASP.NET page classe Vue d'ensemble).
Lorsque la page est compilé, ASP.NET génère une classe partielle sur la base du .aspx; cette classe est une vue partielle classe du fichier de classe code-behind. Le fichier de classe partielle générée contient des déclarations pour de la page contrôles. Cette classe partielle permet votre fichier code-behind à utiliser comme une partie d'une classe complète sans qui vous oblige à déclarer les contrôles explicitement.
Voir ce tableau:
alt texte http://img30.imageshack.us/img30/7692/msdnchart. gif
De cette façon, vous avez une classe qui contient votre logique et une classe qui contient des trucs de concepteur. Au moment de la compilation, il est généré dans son ensemble.
Autres conseils
Parce qu'il ya d'autres parties de la classe (vêtements Designer) qui est caché du développeur
Par exemple, au lieu de cela
public MyBasePage : System.Web.UI.Page
{
...
protected System.Web.UI.Label lblName;
protected void Page_Load(object sender, EventArgs e)
{
}
...
}
ASP.NET crée ces déclarations dans différents fichiers physiques, laissant cette
public partial class MyBasePage : System.Web.UI.Page
{
...
protected void Page_Load(object sender, EventArgs e)
{
}
...
}
Plus d'infos:
La déclaration partielle vous permet d'écrire du code dans d'autres fichiers - il suffit de mettre dans le même espace de noms et le nom de la classe même, et ils seront traités comme s'ils sont dans le même fichier. Il est idéal pour l'ajout de fonctionnalités aux fichiers générés. J'utilise le plus souvent pour ajouter des fonctions / propriétés à mes objets LinqToSql.
L'autre raison pour les fichiers partiels est de gérer le cas où une partie de la définition de la classe est générée par un outil (et peut être régénérés à un moment donné) et le reste de la classe est mis en œuvre par vous.
Dans ce cas, ne pas utiliser une classe partielle entraînerait soit votre code soit remplacé, ou le processus de génération de la difficulté à faire son travail (s'il peut le faire du tout).
Avec les classes partielles en place, le code généré peut être facilement régénérés sans toucher votre code.
Un autre bon exemple est lorsque vous utilisez les classes DataContext pour LINQ to SQL: Le truc vraiment intelligent est généré dans un ensemble de fichiers de classe partielle et vous pouvez fournir des implémentations - pour la validation, etc. - dans l'autre classe partielle , en sachant que re génération ne détruira pas votre travail.
aspx.cs utilise la classe PARTIELLE parce que les contrôles (par exemple TextBox, GridView) accessibles dans cette classe sont déclarées dans le fichier .aspx (c.-à-Physiquement Un autre fichier) si une classe contient le contrôle declaretion (fichier .aspx) et une autre logique d'entreprise à sur les contrôles déclarés dans le dossier .aspx. quand ils sont compilés l'ensemble considéré comme une seule classe.