1、找不到方法:“Prism.Modularity.IModuleCatalog Prism.Bootstrapper.CreateModuleCatalog()”。
解决办法 1、更换prism版本到6.3版本
2、app.config修改对应版本
2、this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(testModule).Assembly)); //testModule就是另一个项目中的类,该类用于加载相应的view,这样就把两个项目里面不同的模块连在了一起
在同一项目里面报错
System.ComponentModel.Composition.CompositionException
HResult=0x80131500
Source=System.ComponentModel.Composition
3、业务模块采用目录catlog加载方式,即后续业务模块开发完成,将DLL扔到目录下即可
4、Unity(Unity Application Block)和MEF(Managed Extensibility Framework)两种框架下的容器
5、创建并配置模块目录
protected override IModuleCatalog CreateModuleCatalog()
{
return new ConfigurationModuleCatalog();
}
protected override void ConfigureAggregateCatalog()
{
base.ConfigureAggregateCatalog();
this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(Mystrapper).Assembly));
this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(TestModule).Assembly));
}
MEF提供了DirectoryCatalog来检测一个目录中是否包含有模块的程序集(或者其它MEF可以导入的类型)。在这种情况下,你需要重写ConfigureAggregateCatalog方法注册一个目录。该方法仅在WPF下有效。
模块列表被一个继承于IModuleCatagory的类所实现。模块列表在应用程序创建时被应用程序的启动器创建。Prism提供了模块列表的多种实现以供选择。也可以通过AddModule方法或者创建一个承继于ModuleCatagory的类后添加自己行为的方式从其它数据源移植模块列表。