2017-01-12 4 views
1

을 입력하십시오. 그래서 kernel.GetAll을 사용하여 인터페이스를 구현하는 모든 클래스의 인스턴스를 되 찾을 수 있습니다. (여기에 멀티 주입으로 잘 문서화되어 있습니다 : https://github.com/ninject/Ninject/wiki/Multi-injection)Ninject : 모든 하위 클래스에

거의 같은 일을하고 싶지만 하위 클래스의 모든 상속인을 주입하고 싶습니다.

var instances = kernel.GetAll<ParentClass>(); // or something equivalent? 

위 코드를 시도했습니다. 던지지 않지만 인스턴스를 반환하지 않습니다.

답변

1

당신과 같이 파생 된 각 클래스에 기본 클래스를 바인딩해야합니다

kernel.Bind<ParentClass>().To<ClassA>(); 
kernel.Bind<ParentClass>().To<ClassB>(); 
var instances = kernel.GetAll<ParentClass>();