Caliburn fournit-il un moyen d'obtenir une référence au conteneur à partir de n'importe où?

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

Question

Je suis en train de jouer avec le framework Caliburn de Rob Eisenberg. Si vous consultez la documentation fournie sur http://caliburn.codeplex.com , vous trouverez un exemple de la manière dont pour résoudre un service Caliburn à partir du conteneur.

Cela ressemble à ceci:

SimpleContainer container = new SimpleContainer();

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

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

Cependant, ce qui me manque, c'est un moyen d'obtenir une référence au conteneur n'importe où dans l'application. Comme ceci:

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

Dois-je créer une classe statique personnalisée contenant une référence au conteneur ou existe-t-il déjà quelque chose d'intégré dans Caliburn?

Merci d'avance et meilleures salutations!

Était-ce utile?

La solution

La dernière version de tronc de Caliburn enregistre automatiquement le conteneur au démarrage de la structure en tant que service de localisation. Il vous suffit de référencer Microsoft.Practices.ServiceLocation sur votre code, puis de demander à ServiceLocator une instance de votre service.

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

L’espoir que cela aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top