Это не ошибка Ninject.
IAmAnInterfaceCombiningOneAndTwo obj = new Myimplementation();
Приведенный выше код не будет компилироваться. Зачем? Потому что Myimplementation
не реализует IAmAnInterfaceCombiningOneAndTwo
. Он реализует IAmAnInterfaceOne
и IAmAnInterfaceTwo
.
IAmAnInterfaceCombiningOneAndTwo
требует, чтобы эти два были реализованы, но простое их внедрение не означает также, что разработчик реализует интерфейс комбинации. Технически это совершенно другой интерфейс. В самом деле, вы можете добавить дополнительные требования к комбинированному интерфейсу, которые не включают ни IAmAnInterfaceOne
, ни IAmAnInterfaceTwo
.
Самое простое решение - изменить Myimplementation
, чтобы явно объявить, что он реализует комбинированный интерфейс (либо дополнительно, либо только этот интерфейс - чистый эффект тот же):
internal class Myimplementation : IAmAnInterfaceCombiningOneAndTwo