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 : 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)
        {
 
        }
J'ai l'interface suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
[ServiceContract]
    public interface IContactServer : IAuthenticatable
    {
et enfin j'essaye de faire ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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...

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