2009-05-18 8 views
0

Je ne vois pas la raison pour laquelle ce code neDelegate.CreateDelegate échoue lorsque le type de retour est l'interface

public interface Interface 
    {} 

    public class Implementation : Interface 
    {} 

    public class Program 
    { 
     public static void Main() 
     { 
     Invoke(); 
     } 

     public Interface SomeMethod(object arg) 
     { 
      return new Implementation(); 
     } 

     public void Invoke() 
     { 
     Delegate someMethod = Delegate.CreateDelegate(typeof(Func<Interface, object>), this, "SomeMethod"); 
     } 
    } 

Essayé différentes de CreateDelegate avec surcharge le même résultat (Erreur de liaison à la méthode cible.): Lorsque la cible méthode renvoie un type d'interface, lier le délégué à la méthode échoue. Quelqu'un peut-il nous éclairer là-dessus?

Répondre

7

Vos paramètres de modèle sont en arrière, Il devrait être Func<object,Interface>

Questions connexes