在设计时将模拟服务注入Caliburn Micro

时间:2014-09-05 08:05:17

标签: c# mvvm caliburn.micro

使用Caliburn.Micro 2.0.1,我已经编辑了AppBootStrapper.cs以注入我的服务并且它正在工作,但我想知道是否有自动注入模拟的方法在设计时我的服务版本就像使用MVVM Light一样?

E.g。

protected override void Configure()
    {
        _container = new SimpleContainer();
        _container.PerRequest<MainViewModel>();
        _container.Instance<IWindowManager>(new WindowManager());
        _container.Singleton<IEventAggregator, EventAggregator>();

        // like this...
        if (IsInDesignMode)
        {
            _container.Instance<IMyService>(new MyServiceMock());
        }
        else
        {
            _container.Instance<IMyService>(new MyService());
        }
    }

1 个答案:

答案 0 :(得分:1)

好的,所以我想通过StackOverflow上的另一篇文章here(多么令人尴尬)。

解决方案是使用&#34; Execute.InDesignMode&#34;

E.g。

if (Execute.InDesignMode)
            _container.Instance<IMyService>(new MyServiceMock());
        else
            _container.Instance<IMyService>(new MyService());