網站首頁 編程語言 正文
創建Prism應用程序
1.第一步
首先, 創建一個基于.NetFramework 或.NetCore的WPF應用程序。如下所示:
2.第二步
為當前應用程序添加NuGet源, 打開NuGet管理器,安裝Prism.DryIoc, 如下所示:
說明:
本文將以DryIoc容器為主講解本系列的所有內容。
實際上, 在Prism7.2版本中, 已經引入了一些圍繞IOC抽象的API更改。這最終將使得在選擇容器之間切換更加容易,因為 API 在如何注冊服務和視圖方面完全相同。
您仍然可以訪問容器,在 Autofac 容器構建器的情況下,通過擴展方法,以便您可以完成更復雜的注冊。
// Prism 6.X way of Registering Services protected override void RegisterTypes() { // Container Specific Registrations // Autofac Builder.RegisterType<DebugLogger>().As<ILoggerFacade>().SingleInstance(); // DryIoc Container.Register<ILoggerFacade, DebugLogger>(reuse: Reuse.Singleton, ifAlreadyRegistered: IfAlreadyRegistered.Replace); // Ninject Container.Bind<ILoggerFacade>().To<DebugLogger>().InSingletonScope(); // Unity Container.RegisterType<ILoggerFacade, MCAnalyticsLogger>(new ContainerControlledLifetimeManager()); } // Unified API in Prism 7 protected override void RegisterTypes(IContainerRegistry containerRegistry) { containerRegistry.RegisterSingleton<ILoggerFacade, DebugLogger>(); }
在Prism提供的VusualStudio Template Pack當中, 默認支持選擇兩種類型的容器項目:
1.DryIoc: GitHub地址
2.Unity: GitHub地址
3.第三步
修改App.xaml文件,添加prism命名空間, 繼承由Application->PrismApplication, 如下所示:
打開App.xaml.cs文件, 繼承由Application->PrismApplication, 如下所示:
注: 此時,繼承于PrismApplication類, 需要實現其中的兩個抽象方法。 CreateShell 與 RegisterTypes
Prism的初始化過程
在上面過程中, 我們已經將普通的WPF應用程序修改為PrismApplication, 此時, 再來了解一下Prism的整個框架的初始化過程, 如下所示:
到目前為止, 我們并不關心內部的運行邏輯及初始化過程, 從上面的圖中, 可以大致了解, Prism在初始化過程中,
除了構建自身的容器、服務、適配器及一些區域行為后, 便開始創建應用程序的首頁(Shell)以及加載模塊, 最終呈現。
注: 關于涉及到的服務、注冊類型、適配器、區域等概念, 再后面會陸續講解。
了解了上面的初始化流程之后, 我們有了初步的概念, 再次回到第三步當中,App.xaml.cs文件。
在這里, 我們實現了其中的兩個抽象方法:
1.CreateShell
該方法返回了一個Window類型的窗口, 其實就是返回應用程序的主窗口。
2.RegisterTypes
該方法用于在Prism初始化過程中, 我們定義自身需要的一些注冊類型, 以便于在Prism中可以使用。
創建Shell示例
現在, 創建一個ShellWindow, 并且實現CreateShell將SheloWindow實例返回, 如下所示:
注:Container 是基類當中的一個容器屬性,可用于解析對象的依賴項注入容器
啟動之后, 我們可以ShellWindow創建定義的內容,并且呈現。
創建Prism的快速方法
1.首先, 打開VisualStudio的擴展, 安裝Prism Template Pack包。
Prism Template Pack提供了什么?
1.Blank Project (空白示例項目)
2.Module Project (模塊示例項目)
3.代碼片段(用戶快速創建屬性,命令)
- 3.1.propp – property (depends on BindableBase)
- 3.2.cmd - DelegateCommand
- 3.3.cmdg – DelegateCommand
2.安裝完成之后, 再次打開VisualStudio, 將會發生,Prism Template Pack提供了多種項目模板, 用于快速構建基于Prism的應用程序, 如下所示:
注:同時,Prism提供了基于Xamarin的項目模板, 因為Prism是一個基于多個平臺的框架, 詳細見: Prism框架介紹
結語
本章節, 主要介紹了如何創建一個基于Prism的WPF項目, 以及其它方式快速創建基于Prism的項目模板。
原文鏈接:https://www.cnblogs.com/zh7791/p/14102046.html
相關推薦
- 2022-03-23 安裝tomcat后可能出現的問題介紹_Tomcat
- 2022-05-21 k8s的包管理工具helm使用簡介_云其它
- 2022-03-14 跨域問題Response to preflight request doesn't pass acc
- 2022-06-19 python繪制分組對比柱狀圖_python
- 2022-09-23 基于React路由跳轉的幾種方式_React
- 2023-03-13 使用webpack配置react-hot-loader熱加載局部更新_React
- 2023-03-29 python中文字符如何轉url編碼_python
- 2022-08-31 ASP.NET?Core中的對象池介紹_實用技巧
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支