Для самосвязываемых типов, таких как неабстрактные классы, экземпляр класса возвращается по умолчанию.Цель этого состоит в том, чтобы упростить наиболее распространенный вариант использования, когда разрешением класса является тестируемый объект, а все зависимости определены как интерфейсы.
Использование классов в качестве зависимости является редкостью, поскольку позволяетиздевательство над виртуальными методами.Как было сказано выше, этот необычный сценарий более сложен, чтобы сделать общий сценарий как можно более простым.
Интерфейсы с другой стороны не требуют привязки.
Если вы хотите макетировать классы, вы должны определить
// note the scope so that you can access it later again
kernel.Bind<Foo>().ToMock().InSingletonScope();
var mock = kernel.GetMock<Foo>()