カリバーンはどこからコンテナへの参照を取得する方法を提供していますか?

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

質問

私は現在、ロブ・アイゼンバーグのカリバーンフレームワークをいじりです。 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>();

希望に役立ちます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top