【问题标题】:Does Caliburn provide a way to get a reference to the container from anywhere?Caliburn 是否提供了一种从任何地方获取对容器的引用的方法?
【发布时间】:2009-06-26 10:41:45
【问题描述】:

我目前正在搞乱 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 中是否已经内置了一些东西?

提前致谢并致以最诚挚的问候!

【问题讨论】:

    标签: wpf frameworks containers caliburn


    【解决方案1】:

    最新的主干版本的 Caliburn 在框架启动时自动将容器注册为服务定位器。您只需在代码中引用Microsoft.Practices.ServiceLocation,然后向ServiceLocator 询问您的服务实例。

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

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      • 1970-01-01
      • 1970-01-01
      • 2010-12-08
      • 1970-01-01
      相关资源
      最近更新 更多