2009-05-18 3 views
0

я не понимаю причину, почему этот код неDelegate.CreateDelegate терпит неудачу, когда возвращаемый тип интерфейса

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"); 
     } 
    } 

Пытались различные перегрузки CreateDelegate с тем же результатом (связывание ошибки целевой метод.): Когда цель метод возвращает тип интерфейса, привязывая делегата к методу сбой. Может ли кто-нибудь пролить свет на это?

ответ

7

Ваши параметры шаблона в обратном направлении, Это должно быть Func<object,Interface>

Смежные вопросы