Delegate.CreateDelegate завершается ошибкой, когда тип возвращаемого значения - интерфейс - PullRequest
0 голосов
/ 18 мая 2009

Я не вижу причину сбоя этого кода (Ошибка привязки к целевому методу.)

    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 с одинаковым результатом: когда целевой метод возвращает тип интерфейса, привязка делегата к методу завершается неудачно. Кто-нибудь может пролить свет на это?

1 Ответ

7 голосов
/ 18 мая 2009

Параметры вашего шаблона задом наперед, Так должно быть Func<object,Interface>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...