Wpf Caliburn.Micro.bootstrapper中的自定义引导程序,什么是引导程序<;IContract>;对于

Wpf Caliburn.Micro.bootstrapper中的自定义引导程序,什么是引导程序<;IContract>;对于,wpf,caliburn.micro,Wpf,Caliburn.micro,我从Caliburn.Micro.bootstrapper派生了一个自定义引导程序,我注意到它可以接受一个泛型类型参数-这是为什么 public class SimpleInjectorBootstrapper : Caliburn.Micro.Bootstrapper { private Container container; public SimpleInjectorBootstrapper() { } protected override vo

我从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);
    }
}
公共类SimpleInjectorBootstrapper:Caliburn.Micro.Bootstrapper
{
私人货柜;
公共SimpleInjectorBootstrapper()
{
}
受保护的覆盖无效配置()
{
this.container=新容器();
this.container.Register();
this.container.Register();
this.container.Register();
}
受保护的覆盖对象GetInstance(类型serviceType,字符串键)
{
返回此.container.GetInstance(serviceType);
}
受保护的重写IEnumerable GetAllInstances(类型serviceType)
{
返回此.container.GetAllInstances(serviceType);
}
启动时受保护的覆盖无效(对象发送方,System.Windows.StartupEventArgs e)
{
启动时(发送方,e);
var appViewModel=this.container.GetInstance();
var windowManager=this.container.GetInstance();
windowManager.ShowWindow(appViewModel);
}
}

这是一种视图模型类型,可用作起始视图模型。Caliburn.Micro将从IoC容器解析类型,并在WPF中使用
WindowManager
显示根视图。主要是您在启动时的
覆盖中所做的操作