Wpf Caliburn.Micro.bootstrapper中的自定义引导程序,什么是引导程序<;IContract>;对于
我从Caliburn.Micro.bootstrapper派生了一个自定义引导程序,我注意到它可以接受一个泛型类型参数-这是为什么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
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
显示根视图。主要是您在启动时的覆盖中所做的操作