目录
四 创建模块APP应用(Create Module APP)
一 开发社区
Developer Blog
Learn
Developer Platform
二 上一章回顾
一 开发社区
二 上一章回顾
三 触类旁通
四 RegionAdapters含义
五 创建TemplateRegionAdapter
六 总结
七 下章预告
三 模块(Module)含义
本质上来说, 对于一个应用程序而言, 特定功能的所有View、Logic、Service等都可以独立存在。那么意味着, 每个
独立的功能我们都可以称之为模块。
而往往实际上, 我们在一个项目当中, 他的结构通常是如下所示:
所有的模块都在一个项目当中, 这使得应用程序当中, 我们难以区分单独的模块, 它们似乎变成了一个整体。
所以,当我们开始考虑划分模块之间的关系的时候, 并且采用新的模块化解决方案, 它的结构将变成如下所示:
该项目包含了一个启动页, 并且在启动页当中,我们划分好了对应的区域。这个时候, 我们便可以灵活的配置我们的应用程序功能。
使用Prism提供强大的功能, 我们可以动态的加载应用程序模块, 为指定的Region动态分配内容, 如下所示:
四 创建模块APP应用(Create Module APP)
1.首先, 我们创建一个基于WPF的应用程序, 删除自带类,添加Views和ViewModels文件夹,并添加对应xxxView用户控件和XXXViewModel PS:必须是用户控件,如果添加Winodws窗体无法打开,暂且定义为ModuleA,接下来为ModuleA定义一个类,并且实现IModule接口。
public class ModuleAModule : IModule
{
/// <summary>
/// 通知模块已被初始化。
/// </summary>
/// <param name="containerProvider"></param>初始化,此处无实际作用,需删除//throw new NotImplementedException();,否则程序抛出异常中止
public void OnInitialized(IContainerProvider containerProvider)
{
}/// <summary>
/// 用于在您的应用程序将使用的容器中注册类型。
/// </summary>
/// <param name="containerRegistry"></param>依赖注入注册导航,手动绑定ChargeView和ChargeViewModel,并重载重命名为CV,方便传参
public void RegisterTypes(IContainerRegistry containerRegistry)
{containerRegistry.RegisterForNavigation<ChargeView, ChargeViewModel>("CV");
}
}
2.在启动项目当中,添加ModuleA的应用, 打开App.xaml.cs, 重写ConfigureModuleCatalog方法,如下所示:
public partial class App
{
protected override Window CreateShell()
{
return Container.Resolve<MainWindow>();
}protected override void RegisterTypes(IContainerRegistry containerRegistry)
{}
protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog)
{
//添加模块A
moduleCatalog.AddModule<ModuleAModule>();
}
}
五 总结
以上就是Prism中创建Module模块的过程,本文仅仅简单介绍了Module创建过程,仅用来帮助学习理解,而在实际生产环境中我们还需要将生成的模块加载到我们的Prism主程序中,这将在我们下一章中详细展开。
六 下章预告
下一章我会教大家Module加载方法
博主RaymondLeigh:如果您觉得本文为您提供了结局思路或解决了您的实际问题,麻烦您🙏帮忙点赞、收藏、评论、关注一键四连,您的举手之劳将为我写作提供动力源泉!🤞
print('Hello,RaymondLeigh!') # 每日问候,跟大家问好!
🌞精品前端MaterialDesign专栏:MaterialDesign专栏
💾精品后端SqlServer专栏:SqlServer专栏
💻