Нет, dynamic
не заставит тип претендовать на реализацию интерфейса (даже если он имеет, через dynamic
, все методы). Передача в ProcessInterface
по существу отнимает dynamic
.
dynamic
зависит от , вызывающего код , так же, как и от объекта реализации. Больше, даже.
Вы могли бы однако создать интерфейсную оболочку, которая использует утку:
class Foo : IBar {
readonly dynamic duck;
public Foo(dynamic duck) { this.duck = duck; }
void IBar.SomeMethod(int arg) {
duck.SomeMethod(arg);
}
string IBar.SomeOtherMethod() {
return duck.SomeOtherMethod();
}
}
interface IBar {
void SomeMethod(int arg);
string SomeOtherMethod();
}