Does Caliburn fornecer uma maneira de obter uma referência para o contêiner de qualquer lugar?
-
20-08-2019 - |
Pergunta
Atualmente estou brincando com quadro Caliburn de Rob Eisenberg. Ao olhar para a documentação que é fornecida na http://caliburn.codeplex.com há um exemplo de como para resolver um serviço Caliburn do recipiente.
É algo ao longo das linhas deste:
SimpleContainer container = new SimpleContainer();
CaliburnFramework
.ConfigureCore(container)
.WithCommonDialogs()
.WithPresentationFramework()
.Start();
var service = container.GetInstance(typeof (IService)) as Service;
No entanto o que estou ausente é uma maneira de obter uma referência para o lugar recipiente no aplicativo. Como esta:
var service = Caliburn.Container.GetInstance(typeof(IService))as Service;
Eu tenho que construir uma classe estática personalizado que contém uma referência para o contêiner ou há algo já incorporado Caliburn?
Agradecemos antecipadamente e melhores cumprimentos!
Solução
A última versão tronco de Caliburn registra automaticamente o recipiente na inicialização do quadro como um localizador de serviço. Você apenas tem que Microsoft.Practices.ServiceLocation
referência no seu código e, em seguida, pedir ao ServiceLocator
para uma instância do seu serviço.
var service = ServiceLocator.Current.GetInstance<IService>();
Espero que ajude.