1

我目前正在搞乱 Rob Eisenberg 的 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 回答