博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
09、Modules - Directory根据目录加载模块文件
阅读量:6500 次
发布时间:2019-06-24

本文共 2600 字,大约阅读时间需要 8 分钟。

  1、创建WPF应用程序Modules,创建类库ModuleA。在Modules的bin目录下创建文件夹Modules,并将ModuleA的生成路径设置为Modules文件夹。

  2、在Modules中,将App.xaml中的StartupUri="MainWindow.xaml"删除。

  3、在Modules中,使用NuGet安装Prism.Wpf、Prism.Core、Prism.Unity。

  4、在Modules中,添加类“Bootstrapper”,编辑如下:

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Windows; 7 using Modules.Views; 8 using Prism.Unity; 9 using Microsoft.Practices.Unity;10 using Prism.Modularity;11 12 namespace Modules13 {14     class BootStarpper:UnityBootstrapper15     {16         protected override DependencyObject CreateShell()17         {18             return Container.Resolve
();19 }20 21 protected override void InitializeShell()22 {23 Application.Current.MainWindow.Show();24 }25 26 protected override IModuleCatalog CreateModuleCatalog()27 {28 return new DirectoryModuleCatalog() { ModulePath = @".\Modules" }; 29         30 }31 }32}

  5、MainWindow.xaml代码如下:

1 
10
11
12
13

  6、修改App.xaml。

1 using System; 2 using System.Collections.Generic; 3 using System.Configuration; 4 using System.Data; 5 using System.Linq; 6 using System.Threading.Tasks; 7 using System.Windows; 8  9 namespace Modules10 {11     /// 12     /// App.xaml 的交互逻辑13     /// 14     public partial class App : Application15     {16         protected override void OnStartup(StartupEventArgs e)17         {18             base.OnStartup(e);19 20             var bootStarpper=new BootStarpper();21             bootStarpper.Run();22         }23     }24 }

  7、在ModuleA中,创建ModuleAModule.cs,代码如下:

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using ModuleA.Views; 7 using Prism.Modularity; 8 using Prism.Regions; 9 10 namespace ModuleA11 {12     public class ModuleAModule:IModule13     {14         IRegionManager _regionManager;15 16         public ModuleAModule(RegionManager regionManager)17         {18             _regionManager = regionManager;19         }20 21         public void Initialize()22         {23             _regionManager.RegisterViewWithRegion("ContentRegion", typeof(ViewA));24         }25     }26 }

  8、ViewA.xaml

1 
9
10
11
12

  9、Modules中修改App.config文件,代码如下:

1 
2
3
4
5
6

 

  

转载于:https://www.cnblogs.com/bjxingch/articles/9553585.html

你可能感兴趣的文章
vmware的APD和PDL详细解析
查看>>
理解:思科设备上的网络地址翻译功能(NAT)功能
查看>>
演示:使用协议分析器取证IPv6的报文结构
查看>>
oracle 11gr2 rac中的4种IP解说
查看>>
为什么你找不到工作?
查看>>
一名合格的测试员应具备的素质
查看>>
SCCM 2007系列3 配置
查看>>
Lync 小技巧-22-申请属于自己的域名
查看>>
20 个免费的 jQuery 的工具提示插件:
查看>>
交易算法故障导致Knight资本集团损失超过4亿美元_IT新闻_博客园
查看>>
linux改ip
查看>>
Oracle数据表解锁
查看>>
堆,栈,new/delete/malloc/free[zz]
查看>>
The CATALINA_HOME environment variable is not defined correctly
查看>>
关于vs2010 起始页
查看>>
VC:CEdit类
查看>>
PacketFence 3.6.0 发布,网络接入控制
查看>>
Debian Linux下的Python学习——列表,元组和字典之列表
查看>>
从sprintf函数谈符号扩展问题
查看>>
Android加载对话框,异步执行代码的封装类
查看>>