FirstBar 및 SecondBar에서 구현 한 Foo 및 IBar에서 IFoo를 구현했다고 가정합니다. 우리는 컨테이너에 세 가지 항목이 있습니다Castle Windsor : 특정 구현과 함께 대회 등록 사용
container.Register(
AllTypes.FromThisAssembly().Pick()
.WithService.DefaultInterface())
:
이 대회 등록하여 지금
IFoo = Foo
IBar = FirstBar
IBar = SecondBar
을, 우리는 어떻게 용기를 말할 수있을이 등록을 조정할 수에 대한 우리는 SecondBar 등록만을 원하십니까? 일종의 :
container.Register(
AllTypes.FromThisAssembly().Pick()
.WithService.DefaultInterface()
.For<IBar>().Select<SecondBar>())
사용 사례 : 우리는 모든 규칙에 따라 등록 된 응용 프로그램에 많은 서비스를 제공합니다. 그러나, 일부 서비스 인터페이스는 2 개 이상의 구현 예 (예 : 실제 구현, 가짜 구현 및 테스트 구현)를 갖는다. 국제 대회 등록은 모두 같은 인터페이스 아래 등록되며, 인터페이스를 해결하는 동안 (비 결정적 순서로) 첫 번째 구현을 얻습니다. 우리는 등록하는 동안 해당 서비스에 대한 하나의 특정 구현을 선택할 수 있기를 원합니다. 어떻게 할 수 있니?
Github. 첫 번째 의견을 수집하기 위해 Google 그룹의 성 사용자 그룹에 먼저 표시하는 것이 좋습니다. 건배 –
예, 무시가 필요한 것입니다. – PandaWood