나는 우리의 견해 많은 코드 (또는 유사)의이 작품이 :ServiceLocator.Current.GetInstance가 null을 반환 할 수 있습니까?
private IEventAggregator eventAggregator;
Constructor()
{
eventAggregator = ServiceLocator.Current.GetInstance<IEventAggregator>();
...
}
내가 ServiceLocator.Current이 NullReferenceException이 (생성자에 나쁜 일을) 던질 수 this 게시물에서 읽을 수 있지만 나는 궁금했다 GetInstance <() 메소드는 null (또는 다른 일관성없는 객체)을 반환 할 수 있으므로 나중에 다른 메서드에서 사용하기에 eventAggregator를 위험하게 만듭니다.
참고 : 나는 servicelocator가 null의 경우 MVVM 및 WPF
ServiceLocator.Current가 null의 경우는'의 인스턴스로 설정 개체 없음 받게됩니다, 당신은의 .GetInstance() 메서드를 호출 할 수 없습니다 개체 '예외. –
이 작업에 대한 경험이 있으면 ServiceLocator.Current는 단위 테스트에서 코드를 호출 할 때 null이 될 수 있습니다. 이 시나리오에서는 서비스 로케이터가 초기화되지 않았을 가능성이 있습니다 (즉, 코드를 담당하는 코드가 호출되지 않을 수 있음). 해결 방법은 그것을 조롱하는 것입니다 (MOQ 라이브러리를 사용했습니다).하지만 서비스 로케이터가있는 특정 코드를 테스트하기위한 것이지만 우리는 그것에 관심이 없습니다. –