Caliburn은 어디서나 컨테이너에 대한 참조를 얻을 수있는 방법을 제공합니까?

StackOverflow https://stackoverflow.com/questions/1048434

문제

나는 현재 Rob Eisenberg의 Caliburn 프레임 워크를 엉망으로 만들고 있습니다. 제공되는 문서를 살펴볼 때 http://caliburn.codeplex.com 컨테이너에서 Caliburn 서비스를 해결하는 방법의 예가 있습니다.

이것은 이것의 선을 따라 무언가입니다.

SimpleContainer container = new SimpleContainer();

CaliburnFramework
            .ConfigureCore(container)
            .WithCommonDialogs()
            .WithPresentationFramework()
            .Start();

var service = container.GetInstance(typeof (IService)) as Service;

그러나 내가 놓친 것은 앱의 어느 곳에서나 컨테이너에 대한 참조를 얻는 방법입니다. 이와 같이:

var service = Caliburn.Container.GetInstance(typeof(IService))as Service;

컨테이너에 대한 참조를 보유한 사용자 정의 정적 클래스를 구축해야합니까, 아니면 Caliburn에 이미 내장 된 것이 있습니까?

미리 감사 드리며 안부입니다!

도움이 되었습니까?

해결책

Caliburn의 최신 트렁크 버전은 컨테이너를 프레임 워크 시작의 서비스 로케이터로 자동으로 등록합니다. 당신은 단지 참조하기 만하면됩니다 Microsoft.Practices.ServiceLocation 코드에 다음을 물어보십시오 ServiceLocator 서비스의 경우.

var service = ServiceLocator.Current.GetInstance<IService>();

도움이되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top