Frage

Ich bin durcheinander derzeit mit Rob Eisenbergs Caliburn Rahmen um. Wenn in der Dokumentation suchen, der auf http://caliburn.codeplex.com gibt es ein Beispiel dafür, wie einen Caliburn Dienst aus dem Behälter zu lösen.

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;

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

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

War es hilfreich?

Lösung

Die neueste Version von Stamm Caliburn registriert automatisch den Behälter zur Rahmenstart als Service Locator. Sie müssen nur Microsoft.Practices.ServiceLocation auf Ihrem Code verweisen und dann für eine Instanz des Service der ServiceLocator fragen.

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

Ich hoffe, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top