[c#] Héritage d'interface et classe générique
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
Code:
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)
{
} |
J'ai l'interface suivante :
Code:
1 2 3
| [ServiceContract]
public interface IContactServer : IAuthenticatable
{ |
et enfin j'essaye de faire ceci :
Code:
1 2
| class Service : SimplexServerBase<IContactServer>
{ |
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...
Citation:
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
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 ??
Merci d'avance,
Cordialement,
NeoKript