カリバーンはどこからコンテナへの参照を取得する方法を提供していますか?
-
20-08-2019 - |
質問
私は現在、ロブ・アイゼンバーグのカリバーンフレームワークをいじりです。 http://caliburn.codeplex.com の上に設けられているドキュメントを見ているとき方法の例がありますコンテナからカリバーンサービスを解決します。
これは、この線に沿って何かです
SimpleContainer container = new SimpleContainer();
CaliburnFramework
.ConfigureCore(container)
.WithCommonDialogs()
.WithPresentationFramework()
.Start();
var service = container.GetInstance(typeof (IService)) as Service;
しかし私が行方不明ですと、どこにでもアプリでコンテナへの参照を取得する方法です。このように:
var service = Caliburn.Container.GetInstance(typeof(IService))as Service;
私は、コンテナへの参照を保持しているか、すでにカリバーンに組み込まれたものがあるカスタム静的クラスを構築する必要がありますか?
事前に感謝し、よろしく!
解決
カリバーンの最新のトランクバージョンは、自動的にサービスロケータとしてフレームワークの起動時にコンテナを登録します。あなたは自分のコードにMicrosoft.Practices.ServiceLocation
参照して、あなたのサービスのインスタンスのServiceLocator
を依頼する必要があります。
var service = ServiceLocator.Current.GetInstance<IService>();
希望に役立ちます。
所属していません StackOverflow