0

Caliburn.Micro.Bootstrapper からカスタム ブートストラッパーを派生させました。ジェネリック型パラメーターを使用できることに気付きました。これは何のためですか?

public class SimpleInjectorBootstrapper : Caliburn.Micro.Bootstrapper
{
    private Container container;

    public SimpleInjectorBootstrapper()
    {
    }

    protected override void Configure()
    {
        this.container = new Container();
        this.container.Register<IWindowManager, WindowManager>();
        this.container.Register<IEventAggregator, EventAggregator>();
        this.container.Register<IAppViewModel, AppViewModel>();
    }

    protected override object GetInstance(Type serviceType, string key)
    {
        return this.container.GetInstance(serviceType);
    }

    protected override IEnumerable<object> GetAllInstances(Type serviceType)
    {
        return this.container.GetAllInstances(serviceType);
    }

    protected override void OnStartup(object sender, System.Windows.StartupEventArgs e)
    {
        base.OnStartup(sender, e);
        var appViewModel = this.container.GetInstance<IAppViewModel>();
        var windowManager = this.container.GetInstance<IWindowManager>();
        windowManager.ShowWindow(appViewModel);
    }
}
4

1 に答える 1

1

これは、開始ビューモデルとして使用するビューモデルタイプです。Caliburn.MicroはIoCコンテナーからタイプを解決し、WPFではを使用しWindowManagerてルートビューを表示します。OnStartup基本的に、オーバーライドで行っていること。

于 2012-11-24T20:06:09.827 に答える