2009-06-26 12 views
1

Ich mache gerade mit Rob Eisenbergs Caliburn Framework rum. Wenn Sie sich die Dokumentation ansehen, die unter http://caliburn.codeplex.com bereitgestellt wird, finden Sie ein Beispiel zum Auflösen eines Caliburn-Service aus dem Container.Bietet Caliburn eine Möglichkeit, von überall einen Verweis auf den Container zu erhalten?

Es ist etwas entlang der Linien von dieser:

SimpleContainer container = new SimpleContainer(); 

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

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

Doch was mir fehlt ist eine Möglichkeit, einen Verweis auf den Behälter überall in der App zu bekommen. Wie folgt aus:

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

Muss ich eine benutzerdefinierte statische Klasse zu bauen, die einen Verweis auf den Behälter hält oder gibt es etwas bereits in Caliburn gebaut?

Vielen Dank im Voraus und mit freundlichen Grüßen!

Antwort

1

Die neueste Trunk-Version von Caliburn registriert den Container beim Starten des Frameworks automatisch als Service-Locator. Sie müssen nur Microsoft.Practices.ServiceLocation auf Ihrem Code referenzieren und dann die ServiceLocator für eine Instanz Ihres Dienstes fragen.

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

Hoffe, dass hilft.

Verwandte Themen