我正在尝试使用Prism,MEF和WPF创建一个非常基本的应用程序。我有一个WPF应用程序项目,它有一个Shell.xaml和Bootstrapper。 BootStrapper的代码如下:
public class SimpleMefApplicationBootstrapper : MefBootstrapper
{
protected override void ConfigureAggregateCatalog()
{
//base.ConfigureAggregateCatalog();
this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(SimpleMefApplicationBootstrapper).Assembly));
this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(PrismApp.Module.Hello.HelloModule).Assembly));
this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(PrismApp.Module.Hello.FinishModule).Assembly));
}
protected override DependencyObject CreateShell()
{
return this.Container.GetExportedValue<Shell>();
}
protected override void InitializeShell()
{
//base.InitializeShell();
Application.Current.MainWindow = (Window)this.Shell;
}
protected override IRegionBehaviorFactory ConfigureDefaultRegionBehaviors()
{
var factory = base.ConfigureDefaultRegionBehaviors();
return factory;
}
在解决方案中我有另一个类库,它有一个View文件夹,View model Folder和两个模块。这两个模块绑定到两个视图,以便它们可以用作区域。如果我尝试从botstrapper只调用一个模块但是当我同时调用这两个模块时,它可以正常工作。它给了我错误的详细信息,如:
Loader找到了一个名为FinishModule的重复模块。
我不明白两个模块是否有不同然后是什么问题。我也尝试为两个模块更换组合但没有运气。
有什么想法吗?
答案 0 :(得分:2)
尝试只使用一个电话:
public class SimpleMefApplicationBootstrapper : MefBootstrapper
{
protected override void ConfigureAggregateCatalog()
{
//base.ConfigureAggregateCatalog();
this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(SimpleMefApplicationBootstrapper).Assembly));
this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(PrismApp.Module.Hello.HelloModule).Assembly));
// this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(PrismApp.Module.Hello.FinishModule).Assembly));
}