最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

WPF創(chuàng)建Prism應用程序

 更新時間:2022年02月10日 11:37:08   作者:痕跡g  
這篇文章介紹了WPF創(chuàng)建Prism應用程序的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

創(chuàng)建Prism應用程序

1.第一步

首先, 創(chuàng)建一個基于.NetFramework 或.NetCore的WPF應用程序。如下所示:

2.第二步

為當前應用程序添加NuGet源, 打開NuGet管理器,安裝Prism.DryIoc, 如下所示:

說明:

本文將以DryIoc容器為主講解本系列的所有內(nèi)容。

實際上, 在Prism7.2版本中, 已經(jīng)引入了一些圍繞IOC抽象的API更改。這最終將使得在選擇容器之間切換更加容易,因為 API 在如何注冊服務和視圖方面完全相同。

您仍然可以訪問容器,在 Autofac 容器構(gòu)建器的情況下,通過擴展方法,以便您可以完成更復雜的注冊。

// 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類, 需要實現(xiàn)其中的兩個抽象方法。 CreateShell 與 RegisterTypes

Prism的初始化過程

在上面過程中, 我們已經(jīng)將普通的WPF應用程序修改為PrismApplication, 此時, 再來了解一下Prism的整個框架的初始化過程, 如下所示:

到目前為止, 我們并不關心內(nèi)部的運行邏輯及初始化過程, 從上面的圖中, 可以大致了解, Prism在初始化過程中,

除了構(gòu)建自身的容器、服務、適配器及一些區(qū)域行為后, 便開始創(chuàng)建應用程序的首頁(Shell)以及加載模塊, 最終呈現(xiàn)。

注: 關于涉及到的服務、注冊類型、適配器、區(qū)域等概念, 再后面會陸續(xù)講解。

了解了上面的初始化流程之后, 我們有了初步的概念, 再次回到第三步當中,App.xaml.cs文件。

在這里, 我們實現(xiàn)了其中的兩個抽象方法:

1.CreateShell

該方法返回了一個Window類型的窗口, 其實就是返回應用程序的主窗口。

2.RegisterTypes

該方法用于在Prism初始化過程中, 我們定義自身需要的一些注冊類型, 以便于在Prism中可以使用。

創(chuàng)建Shell示例

現(xiàn)在, 創(chuàng)建一個ShellWindow, 并且實現(xiàn)CreateShell將SheloWindow實例返回, 如下所示:

注:Container 是基類當中的一個容器屬性,可用于解析對象的依賴項注入容器

啟動之后, 我們可以ShellWindow創(chuàng)建定義的內(nèi)容,并且呈現(xiàn)。

創(chuàng)建Prism的快速方法

1.首先, 打開VisualStudio的擴展, 安裝Prism Template Pack包。

Prism Template Pack提供了什么?

1.Blank Project (空白示例項目)
2.Module Project (模塊示例項目)
3.代碼片段(用戶快速創(chuàng)建屬性,命令)

  • 3.1.propp – property (depends on BindableBase)
  • 3.2.cmd - DelegateCommand
  • 3.3.cmdg – DelegateCommand

2.安裝完成之后, 再次打開VisualStudio, 將會發(fā)生,Prism Template Pack提供了多種項目模板, 用于快速構(gòu)建基于Prism的應用程序, 如下所示:

注:同時,Prism提供了基于Xamarin的項目模板, 因為Prism是一個基于多個平臺的框架, 詳細見: Prism框架介紹

結(jié)語

本章節(jié), 主要介紹了如何創(chuàng)建一個基于Prism的WPF項目, 以及其它方式快速創(chuàng)建基于Prism的項目模板。

到此這篇關于WPF創(chuàng)建Prism應用程序的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 微信小程序 (十七)input 組件詳細介紹

    微信小程序 (十七)input 組件詳細介紹

    這篇文章主要介紹了微信小程序 input 組件詳細介紹的相關資料,需要的朋友可以參考下
    2016-09-09
  • vs2010 vs2008 vs2005 快捷鍵大全

    vs2010 vs2008 vs2005 快捷鍵大全

    本文搜集整理了一些實用快捷鍵:VS2005的隱藏快捷鍵;VS2010版快捷鍵;VS2008快捷鍵大全等等,需要了解的朋友可以參考下
    2012-12-12
  • .Net?Core依賴注入IOC和DI介紹

    .Net?Core依賴注入IOC和DI介紹

    這篇文章介紹了.Net?Core依賴注入IOC和DI,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-01-01
  • ASP.NET堆和棧二之值類型和引用類型的參數(shù)傳遞和內(nèi)存分配

    ASP.NET堆和棧二之值類型和引用類型的參數(shù)傳遞和內(nèi)存分配

    這篇文章介紹了ASP.NET堆和棧中值類型和引用類型的參數(shù)傳遞和內(nèi)存分配,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • net core下鏈路追蹤skywalking安裝和簡單使用教程

    net core下鏈路追蹤skywalking安裝和簡單使用教程

    本文將從0開始搭建兩個webapi項目,使用Skywalking來追蹤他們之間的調(diào)用關系及響應時間,開發(fā)環(huán)境為VisualStudio2019,對net core 鏈路追蹤skywalking安裝和使用教程感興趣的朋友一起看看吧
    2021-10-10
  • ASP.NET全棧開發(fā)教程之前后臺校驗結(jié)合詳解

    ASP.NET全棧開發(fā)教程之前后臺校驗結(jié)合詳解

    這篇文章主要給大家介紹了關于ASP.NET全棧開發(fā)教程之前后臺校驗結(jié)合的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • 使用Hangfire+.NET?6實現(xiàn)定時任務管理(推薦)

    使用Hangfire+.NET?6實現(xiàn)定時任務管理(推薦)

    這篇文章主要介紹了使用Hangfire+.NET?6實現(xiàn)定時任務管理,通過引入Hangfire相關的Nuget包并對Hangfire進行服務配置,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • ASP.NET?Core自定義中間件的方式詳解

    ASP.NET?Core自定義中間件的方式詳解

    這篇文章主要介紹了ASP.NET?Core自定義中間件的方式,雖然ASP.NET?Core為我們提供了一組豐富的內(nèi)置中間件,但有些時候我們可能會需要自定義一些中間件,將其穿插到管道中,以便滿足我們特定業(yè)務場景的需求,所以本文將介紹3種方式來滿足自定義中間件的需求
    2022-08-08
  • ADO.NET中的五個主要對象的詳細介紹與應用

    ADO.NET中的五個主要對象的詳細介紹與應用

    ADO.NET中的五個主要對象:Connection、Command、DataAdapter DataSet、DataReader詳細介紹與應用,感興趣的朋友可以參考下
    2012-12-12
  • ASP.NET Core MVC/WebApi基礎系列1

    ASP.NET Core MVC/WebApi基礎系列1

    這篇文章主要介紹了ASP.NET Core MVC/WebApi基礎系列,后續(xù)會穿插講EF Core和ASP.NET Core,雖說是基礎系列但也是也有你不知道的。
    2019-04-04

最新評論

西乌珠穆沁旗| 石泉县| 南郑县| 越西县| 九龙坡区| 叙永县| 温州市| 抚远县| 久治县| 鄢陵县| 定安县| 洛阳市| 嘉义县| 德令哈市| 庆安县| 南江县| 滨海县| 西盟| 四川省| 兴隆县| 临澧县| 甘肃省| 宁河县| 济南市| 湘潭县| 合川市| 万全县| 宁安市| 达拉特旗| 三亚市| 贺州市| 日土县| 冀州市| 太仓市| 郁南县| 遂宁市| 图木舒克市| 周宁县| 金寨县| 石楼县| 奎屯市|