Prism合集(第六章 Module模型)

目录

一 开发社区

二 上一章回顾

三 模块(Module)含义

四 创建模块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!')  # 每日问候,跟大家问好!


🔥精品C#框架专栏:Prism合集 WPF合集


🌞精品前端MaterialDesign专栏:MaterialDesign专栏


💾精品后端SqlServer专栏:SqlServer专栏


 💻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值