2010-04-12 5 views
4

저는 Prism 프레임 워크에서 Unity를 Ninject로 대체하려고합니다. 이를 위해서는 Ninject 특정 IServiceLocator를 구현해야합니다. 내가 이해 한 바로는 ServiceLocatorImplBase를 대신 상속받을 수 있기 때문에 그것이 내가하는 일입니다. 이제 어떻게 이것을 현재 ServiceLocator로 설정할 수 있습니까? 예를 들어내 IServiceLocator 구현을 ServiceLocator.Current로 설정하는 방법은 무엇입니까?

void ServiceLocator.SetLocatorProvider(ServiceLocatorProvider newProvider); 

..하지만 :

IServiceLocator locator = ServiceLocator.Current; 

이 정적 속성이지만 세터가없는이 .. 함수가있다 :이 지역을 생성하고, 호출 할 때 RegionManager 그것을 얻을 인수가 ServiceLocatorImplBase와 일치하지 않습니다. 어떤 아이디어?

답변

4

ServiceLocatorProvider 대리자, 당신은이 작업을 수행 할 수 있습니다

var container = NInjectServiceLocator(); // your ServiceLocatorImplBase impl. 

ServiceLocator.SetLocatorProvider(() => container); 
+0

감사합니다! 완벽하게 작동합니다! – stiank81

+0

'SetLocatorProvider' 메쏘드가'Current' setter 메쏘드보다 어떤 이점이 있는지 알고 싶다면 다음 토론을 읽어보십시오 : http://commonservicelocator.codeplex.com/Thread/View.aspx?ThreadId=50463. – Steven

관련 문제