MVVM Silverlight 응용 프로그램을 위해 모든 구성 요소를 함께 모으려고하고 있으며 서비스 로케이터에 대한 블로그를 볼 수 있습니다.Silverlight MVVM 응용 프로그램에서 서비스 로케이터의 용도는 무엇입니까?
서비스 검색기 란 무엇이며 언제 사용해야합니까?
MVVM Silverlight 응용 프로그램을 위해 모든 구성 요소를 함께 모으려고하고 있으며 서비스 로케이터에 대한 블로그를 볼 수 있습니다.Silverlight MVVM 응용 프로그램에서 서비스 로케이터의 용도는 무엇입니까?
서비스 검색기 란 무엇이며 언제 사용해야합니까?
MVVM과 함께 ServiceLocator를 사용하여 ViewModel에 대한 선언적 바인딩을 활성화했습니다.
IoC 컨테이너가 푸시 기반 인 반면 ServiceLocator는 끌어 오기 기반입니다. 예를 들면 : 당신이 IoC 컨테이너를 사용하는 경우
당신은 아마 이런 식으로 뭔가를 만들 것이다 : 그것을 구축 할
public MyViewModel(IDataRepository repository)
{
}
IOC의 컨테이너는 객체로 IDataRepository 인스턴스를 밀어 것입니다. 당신이 ServiceLocator를 사용하는 경우
당신은 일반적으로 다음과 같은 코드를 작성합니다 :
public MyViewModel()
{
_repository = ServiceLocator.Instance.DataRepository;
}
그래서이 경우에는 뷰 모델은 ServiceLocator에서 IDataRepository 인터페이스의 인스턴스를 당기고 있습니다.
ServiceLocator는 IoC 컨테이너에 의해 백업 될 수 있지만 필수는 아닙니다.
이 작업을 수행하는 이점은 ServiceLocator를 App.xaml 파일에 리소스로 추가 한 다음 뷰에서 선언적으로 액세스 할 수 있다는 것입니다.
<UserControl
DataContext="{Binding Path=MyViewModel,
Source={StaticResource serviceLocator}}">...</UserControl>
MyViewModel는 IoC 컨테이너에 의해 생성 될 수 있지만 데이터 바인딩과 ServiceLocator를 사용하여보기로 뽑아.
블로그에 blog post about Dependency Injection, IoC and ServiceLocators in a Silverlihgt/MVVM context이 있습니다.
서비스 검색자는 의존성 주입과 비슷한 디자인 패턴입니다.
소비자는 구체적인 클래스보다는 인터페이스를 기반으로 프로그래밍 할 수 있습니다.
CodePlex에서 호스팅되는 Common Service Locator을 살펴보십시오.
> 블로그 링크가 작동하지 않습니다. 링크를 확인하고 싶을 수 있습니다. – atconway
문제의 기사에 대한 링크를 업데이트했습니다. :) –