1

私は現在、RobEisenbergのCaliburnフレームワークをいじっています。http://caliburn.codeplex.comで提供されているドキュメントを見ると、コンテナーからCaliburnサービスを解決する方法の例があります。

これに沿ったものです:

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;

コンテナへの参照を保持するカスタム静的クラスを構築する必要がありますか、それともCaliburnにすでに組み込まれているものがありますか?

よろしくお願いします!

4

1 に答える 1

1

Caliburnの最新のトランクバージョンは、フレームワークの起動時にコンテナをサービスロケーターとして自動的に登録します。Microsoft.Practices.ServiceLocationコードを参照してからServiceLocator、サービスのインスタンスを要求するだけです。

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

お役に立てば幸いです。

于 2009-07-07T14:18:07.257 に答える