我应该创建什么而不是Bootstrapper?棱镜6.1.0

Ste*_*pUp 5 c# wpf xaml prism mvvm

我试图将我的应用程序从Prism v4.0更新到Prism v6.1.0并运行包管理器:PM> Install-Package Prism.Core

和PM安装了这样的包:

  • Microsoft.Practices.Prism.Composition.dll
  • Microsoft.Practices.Prism.Interactivity.dll
  • Microsoft.Practices.Prism.Mvvm.dll
  • Microsoft.Practices.Prism.Mvvm.Desktop.dll
  • Microsoft.Practices.Prism.PubSubEvents.dll
  • Microsoft.Practices.Prism.SharedInterfaces.dll
  • Microsoft.Practices.ServiceLocation.dll

我试图创建bootstrapper的下一步:

public class Bootstrapper : UnityBootstrapper
{
    protected override DependencyObject CreateShell()
    {
        return Container.Resolve<Shell>();
    }
    protected override void InitializeShell()
    {
        base.InitializeShell();
        App.Current.MainWindow = (Window)Shell;
        App.Current.MainWindow.Show();
    }
    protected override void ConfigureContainer()
    {
        base.ConfigureContainer();
        Container.RegisterType<IShellViewModel, ShellViewModel>();
    }     
    protected override RegionAdapterMappings ConfigureRegionAdapterMappings()
    {
        RegionAdapterMappings mappings = base.ConfigureRegionAdapterMappings();
        mappings.RegisterMapping(typeof(StackPanel), Container.Resolve<StackPanelRegionAdapter>());
        return mappings;
    } 
    protected override IModuleCatalog CreateModuleCatalog()
    {
        ModuleCatalog catalog = new ModuleCatalog();            
        catalog.AddModule(typeof(ModuleBModule));
        return catalog;
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图解决这个问题UnityBootstrapper.然而,在Prism 6.1.0中没有这样的课程.所以我试图通过Nuget安装:

Prism.UnityExtesions
Run Code Online (Sandbox Code Playgroud)

然而NuGet说:This package is no longer supported. Please use the new Prism.Unity package.

Prism 5.0有一个bootstrapper类.但是现在不支持Prism 5.0.例如,在此示例中,来自code.msdn的HelloWorld.

所以我想到的问题是:如何在Prism 6.1.0上创建bootstrapper?

Bar*_*art 18

正如@toumir的评论中所提到的,首先卸载所有Microsoft.Practices.*软件包(检查你的packages.config以确保它们都已卸载).

由于您正在尝试使用Unity with Prism 6,因此您必须安装的唯一软件包是Prism.Unity.这将自动引入所需的所有其他包:

  • 统一
  • CommonServiceLocator
  • Prism.Wpf
    • Prism.Core

这是一个很好的做法,只添加最具体的包,就像新的项目文件(.NET Core,ASP.NET 5,Win10 UWP)一样,旧的packages.config文件被project.json文件替换,NuGet v3将采用关心更好的依赖性解决方案.截至今天它尚未用于WPF,但这不应该阻止你做"正确".

有关Prism 6的新文档样本,请访问Prism GitHub存储库.