Здравствуйте, samius, Вы писали:
S>Здравствуйте, gandjustas, Вы писали:
S>>>Этот код кидает исключение RuntimeBinderException с сообщением
S>>>S>>>'ConsoleApp.IFoo' does not contain a definition for 'Foo'
G>>Говорит что ConsoleApp.IFoo2 не содержит метода Foo.
S>Спасибо, мой английский позволяет понять это сообщение.
ConsoleApp.
IFoo2
G>>Это C# делает вид, что методы в интерфейсах "наследуются", на уровне IL не так дела обстоят.
G>>RuntimeBinder довольно глуп, он на вход получает информацию что надо найти метод Foo для типа IFoo2, и его не находит, можете сами рефлексией посмотреть что у него такого метода нет. А пройтись по его интерфейсам, как это делает компилятор, почему-то не догадывается.
S>Я где-то краем глаза читал что RuntimeBinder делает в рантайме ту же работу, что и компилятор во время компиляции. Похоже, что это не так. В спеке на эту тему ничего не нашел.
Видимо не ту же работу.