Does Caliburn fornecer uma maneira de obter uma referência para o contêiner de qualquer lugar?

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

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!

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top