我尝试将我的应用程序从Prism v4.0更新到Prism v6.1.0并运行包管理器: PM> Install-Package Prism.Core
并且PM安装了这样的包:
下一步我尝试创建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;
}
}
我尝试解决UnityBootstrapper
问题。然而,在Prism 6.1.0中没有这样的课程。
所以我试图通过Nuget安装:
Prism.UnityExtesions
然而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?
答案 0 :(得分:18)
如@toumir的评论中所述,首先卸载所有Microsoft.Practices.*
个软件包(检查您的packages.config以确保它们全部已卸载)。
由于您尝试使用Unity with Prism 6,因此您必须安装的仅包是Prism.Unity。这将自动引入所需的所有其他包:
这是一个很好的做法,只添加最具体的包,就像新的项目文件(.NET Core,ASP.NET 5,Win10 UWP)一样,旧的packages.config文件被project.json替换。文件和NuGet v3将负责better dependency resolving。截至今天,它尚未用于WPF,但这不应该让你无法做到这一点&#34;对&#34;。
对于Prism 6上的新documentation和samples,请转到Prism GitHub存储库。