2014-09-24 2 views
1

Castle Windsor IoC 등록에서 Ninject의 When 절에 해당하는 항목이 있습니까? Sitecore에서 Castle Windsor를 사용하고 싶습니다. PageEditor (부울 표시기)에있을 때 백엔드 응용 프로그램을 호출하는 대신 정적 목록을 사용하려고합니다.Sitecore에 대한 Windsor IOC 등록

 Component.For<ICartProvider>().ImplementedBy<OscarCartProvider>().DependsOn(Dependency.OnValue(false, StateHelper.InMockState())).LifestyleTransient(), 
     Component.For<ICartProvider>().ImplementedBy<MockCartProvider>().DependsOn(Dependency.OnValue(true, StateHelper.InMockState())).LifestyleTransient(), 

StateHelper.InMockState 대신 OscarCartProvider의 MockCart 제공자를 laoding 발생한다 부울 값을 반환합니다 :

내 솔루션 같은 뭔가가 있어야한다.

+0

컨테이너에서'PageEditor'를 가져옵니다. –

+0

현재 Sitecore 컨텍스트의 정적 변수입니다. –

+0

PageEditor는 Sitecore 컨텍스트의 정적 속성입니까? 질문에 코드를 추가하고 달성하고자하는 것에 시각적 컨텍스트를 제공하면 조금 더 이해할 수 있습니다. –

답변

1

Ninject에의 When에 가장 가까운 해당 아마 당신이 IHandlerSelector의 경우에 HasOpinionAbout 메소드의 반환 값이 어떤 조건을 기반으로 주어진 핸들러를 선택할 수 있습니다 IHandlerSelector interface 될 것입니다. 에 정적리스트의 구현을 등록 할 용기와 PageEditor를 등록 할 때

Ayende has an example for how HandlerSelectors can be used on his blog.

또는, 그것은 항상 PageEditor 사용하고 싶은 정적리스트의 구현처럼 보이는 때문에 아마 간단하게, 당신은 DependsOn()을 사용할 수 있습니다 귀하의 다른 구현에 사용하십시오.

+0

IHandlerSelector를 구현했습니다. 이것은 잘 작동합니다! 지금 백엔드 응용 프로그램을 사용하지 않는 페이지 편집기 환경이 있습니다! –

관련 문제