前言
MefBootstrapper 是 Prism 框架中专门为 MEF(Managed Extensibility Framework) 设计的启动器基类,它的核心作用是协调应用程序的初始化过程,并集成 MEF 作为依赖注入容器。
1、创建Bootstrapper引导程序类
CreateShell方法用于从容器中获取主窗口;InitializeShell中用于设置主窗体以及显示主窗体,注意这里要引用Prism.Mef.Wpf.dll。
classBootStrapper:MefBootstrapper{privatereadonlystringApplicationPath=Environment.CurrentDirectory+"\\lib\\";protectedoverrideDependencyObjectCreateShell(){returnthis.Container.GetExportedValue<MyShell>();}protectedoverridevoidInitializeShell(){base.InitializeShell();Application.Current.MainWindow=(Window)Shell;Application.Current.MainWindow.Show();}protectedoverridevoidConfigureAggregateCatalog(){base.ConfigureAggregateCatalog();this.AggregateCatalog.Catalogs.Add(newAssemblyCatalog(typeof(BootStrapper).Assembly));DirectoryCatalogcatalog=newDirectoryCatalog(ApplicationPath);this.AggregateCatalog.Catalogs.Add(catalog);}protectedoverridevoidConfigureModuleCatalog(){base.ConfigureModuleCatalog();}}启动流程 Application.Startup()↓ BootStrapper 实例化 ↓CreateLogger()-创建日志 ↓ ConfigureModuleCatalog-配置模块目录 ↓ ConfigureAggregateCatalog-配置组件目录 ↓CreateShell()-创建主窗口 ↓InitializeShell()-初始化主窗口 ↓InitializeModules()-初始化所有模块 ↓ 应用程序就绪2、使用引导程序
1)删除 StartupUri
2)重写OnStartup方法
在App.xaml.cs类中重写OnStartup方法,实例化BootStrapper类,并调用Run方法
publicpartialclassApp:Application{protectedoverridevoidOnStartup(StartupEventArgse){base.OnStartup(e);BootStrapperbootStrapper=newBootStrapper();bootStrapper.Run();}}3、导出主窗体MyShell类
马工撰写的年入30万+C#上位机项目实战必备教程(点击下方链接即可访问文章目录)
1、《C#串口通信从入门到精通》
2、《C#与PLC通信从入门到精通 》
3、《C# Modbus通信从入门到精通》
4、《C#Socket通信从入门到精通 》
5、《C# MES通信从入门到精通》
6、《winform控件从入门到精通》
7、《C#操作MySql数据库从入门到精通》