2 개의 구현 Foo1과 Foo2를 가진 IFoo 인터페이스가 있습니다.NInject : 단일 인터페이스에 다중 서비스 바인딩하기
public interface IFoo
{
void Process();
}
public class Foo1 : IFoo
{
public void Process()
{
}
}
public class Foo2 : IFoo
{
public void Process()
{
}
}
아래와 같이 등록합니다.
kernel.Bind(x => x
.FromAssemblyContaining<IFoo>()
.SelectAllClasses().InheritedFrom<IFoo>()
.BindAllInterfaces()
.Configure(b => b.InRequestScope()));
내가이
public class TestController: ApiController
{
public TestController(IFoo[] fooServices)
{
}
}
그러나 서비스 목록 fooServices처럼 모든 IFoo 서비스를 얻으려고하는 것은 비어 있습니다. 대신 내 모든 2 가지 서비스를 받고 싶습니다.
도와주세요!
는 수동으로 동일한 인터페이스 대신에 당신의 LINQ 표현에 여러 유형을 결합하는 것을 시도했다 : 그것은 각 플러그인 유형을 통해 횡단과 인터페이스를 받고 다음과 같이 등록하여 해결되었습니다 ? 바인딩 오류 또는 해결 오류인지 확인하십시오. – ckuri
@spender, 의견을 보내 주셔서 감사합니다. 나는 이것을 시도 할 것이다. –
@ckury, 힌트를! 그 중 하나를 시도해 볼 가치가 –