Bonjour à tous,
j'ai un petit soucis de Polymorphisme dirons-nous.
J'ai une classe générique défini comme ceci ou T est de type IAuthenticatable
J'ai l'interface suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public class SimplexServerBase<T> : ServerBase<T> where T : IAuthenticatable { public SimplexServerBase(PluginBase Plugin, String RemoteAddress) : base(Plugin, RemoteAddress) { }
et enfin j'essaye de faire ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [ServiceContract] public interface IContactServer : IAuthenticatable {
Le problème est que pour le compilo, IContactServer n'est pas de type IAuthenticatable, c'est la première fois que je fait des "héritages" d'une interface avec une autre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 class Service : SimplexServerBase<IContactServer> {
Est-il possible de faire ce que je souhaite et si non pouvez-m'expliquer pourquoi le compilo ne peut pas remonter à l'interface mère ? Ce n'est peut-être pas un vrai héritage IContactServer contient bien tout les élément mais n'a plus aucun lien avec l'interface mère ??Erreur 3 Le type 'Interface.Contact.IContactServer' ne peut pas être utilisé comme paramètre de type 'T' dans le type ou la méthode générique 'Interface.Plugin.SimplexServerBase<T>'. Il n'y a pas de conversion de référence implicite de 'Interface.Contact.IContactServer' en 'Interface.Plugin.IAuthenticatable'. Q:\WPFDesktop\Plugin_Contact\Communication\Service.cs 17 11 Plugin_Contact
Merci d'avance,
Cordialement,
NeoKript
Partager