Imaginer le code suivant:Comment approcher une classe qui implémente une interface et a une classe de base?
MyService myService = new MyService();
myService.Start();
myService.DoStuff();
La classe MyService
ressemble à ceci:
public class MyService : ClientBase, IMyService
{
...
}
Maintenant, je voulais changer le code existant pour appeler cette classe en utilisant son interface:
IMyService myService = GetMyService();
myService.Start();
myService.DoStuff();
Regarde mieux, mais maintenant j'obtiens une erreur sur la ligne contenant myService.Start();
, puisqu'il s'agit d'une implémentation héritée de la classe de base ClientBase
.
Que dois-je faire maintenant? Prolonger l'interface IMyService
et inclure l'interface ? C'est la seule solution à laquelle je puisse penser maintenant, mais je ne pense pas que ce soit très élégant ...
EDIT: La classe ClientBase est celle de System.ServiceModel donc je ne peux rien changer à ce sujet.
La classe ClientBase est celle de System.ServiceModel et n'a pas d'interface, donc ce n'est pas une option pour moi je pense. Merci quand même. –
Vous avez mentionné dans votre OP qu'il le fait * "Que dois-je faire maintenant? Étendre l'interface IMyService et inclure l'interface ClientBase" * – James
Il y a une autre classe entre les deux, donc votre première réponse était la bonne. J'ai roulé votre édition en arrière, merci. –