J'ai une hiérarchie de classes où IObject est la classe de base pour le produit et le client. Je veux définir une page de base dans asp.net qui devrait contenir du code générique. La page générique affiche le nom de l'objet et permet à l'utilisateur de supprimer l'objet en demandant une confirmation. La page doit être écrite par rapport au type IObject. Je suis en train de définir une page de base d'une manière ci-dessous, mais il donne une erreur de compilation:Créer une page Web de base paramétrée dans asp.net
public class BaseDeletePage<T> : System.Web.UI.Page
where T:IObject
{
}
Il donne l'erreur de compilation suivante: « Assurez-vous que la classe définie dans ce fichier de code correspond à la ' hérite de l'attribut et étend la classe de base correcte (par exemple Page ou UserControl) "
L'énoncé de problème générique est: Comment définir une classe de pages Web paramétrée, qui pourrait être utilisée par d'autres pages comme classe de base.
J'ai un scénario complètement différent dans mon produit. J'ai rapidement trouvé un exemple à mettre sur un forum. Je vais sûrement évaluer votre suggestion et voir si cela résout mon problème. –
Je ne suis pas entièrement d'accord avec vous. La solution basée sur la propriété ne remplace pas une solution générique. Cela signifie-t-il que nous n'avons jamais besoin d'une classe de base paramétrée. –
En fin de compte, une classe qui hérite de Page ne devrait pas avoir besoin d'un paramètre de type. Il y a très probablement une meilleure façon de faire ce que vous voulez faire. Dans l'exemple que vous avez donné, vous aviez besoin de la page pour pouvoir passer un objet qui implémente IObject afin de le supprimer (je pense, IObject.Delete()). Dans ce cas, vous n'avez pas besoin de savoir s'il s'agit d'un client ou d'un produit, il suffit d'implémenter IObject. Ainsi, vous n'avez pas besoin d'un paramètre de type, vous avez besoin d'une propriété ou d'une méthode pouvant recevoir un objet IObject. Peut-être avez-vous besoin d'une meilleure question? –