Я использую модуль Ninject для привязки различных типов к соответствующим интерфейсам.
Инъекция будет происходить внутри конструктора класса. Проблема в том, что у класса есть другой конструктор с сигнатурой, включая Func.
Ninject смущен и бросает это в меня:
Ошибка активации ClassTest с использованием неявного самосвязывания ClassTest. Несколько конструкторов имеют одинаковый приоритет. Пожалуйста, укажите конструктор с использованием синтаксиса ToConstructor или добавьте атрибут Inject.
Смотрите ниже, как выполняется связывание и как я делаю инъекцию:
this.Bind<InterfaceA>().To<ClassA>();
...
public class ClassTest
{
public ClassTest(InterfaceA a)
{
}
public ClassTest(Func<ClassB> funcB)
{
}
}
...
var giveMeTest = kernel.Get<ClassTest>(); // exception thrown
}
Кажется, что здесь виноват Функ, не могли бы вы объяснить, почему Нинжект запутался?
Спасибо