J'ai un site Web .NET écrit en C# et je vais créer des fonctionnalités que d'autres développeurs peuvent utiliser. Je vais donc faire une implémentation par défaut et un développeur peut remplacer certaines méthodesProblèmes avec les classes étendues et écrasement avec les méthodes
Exemple: j'ai une classe ShoppingCart
et une classe Product
le produit de la classe nantis d'une méthode getProductPrice
le shoppingcart appellera la méthode getProductPrice
pour le calcul du total prix du panier
le ShoppingCart
et Product
sont dans le même projet et je vais donner les développeurs le .dll afin qu'ils ne peuvent pas changer le code source afin que nous puissions mettre à jour l'ensemble plus tard
ils ont donc besoin de faire un autre projet et étendre la classe de produits et remplacer la méthode getProductPrice
afin qu'ils peuvent mettre en œuvre leur propre logique Le problème est que le shoppingcart va pas appeler la méthode étendue, mais l'original
Si nous faisons déjà un projet étendu pour les développeurs et le shoppingcart appellera la méthode étendue alors nous avons une référence circulaire parce que le produit étendu a besoin d'une référence au produit et le panier d'achat au produit étendu
Les classes partielles ne fonctionnent pas aussi parce que nous ne pouvons utiliser que des partiels dans le même assemblage
Est-ce que quelqu'un a une suggestion?
Merci d'avance.
Le terme est "override", pas "overwrite" – dthorpe
l'une des réponses a-t-elle aidé du tout? Avez-vous besoin d'aide supplémentaire? – GenericTypeTea