欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

1.第一步

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

2.第二步

為當(dāng)前應(yīng)用程序添加NuGet源, 打開(kāi)NuGet管理器,安裝Prism.DryIoc, 如下所示:

說(shuō)明:

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

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

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

// 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當(dāng)中, 默認(rèn)支持選擇兩種類型的容器項(xiàng)目:

1.DryIoc: GitHub地址

2.Unity: GitHub地址

3.第三步

修改App.xaml文件,添加prism命名空間, 繼承由Application->PrismApplication, 如下所示:

打開(kāi)App.xaml.cs文件, 繼承由Application->PrismApplication, 如下所示:

注: 此時(shí),繼承于PrismApplication類, 需要實(shí)現(xiàn)其中的兩個(gè)抽象方法。 CreateShell 與 RegisterTypes

Prism的初始化過(guò)程

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

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

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

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

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

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

1.CreateShell

該方法返回了一個(gè)Window類型的窗口, 其實(shí)就是返回應(yīng)用程序的主窗口。

2.RegisterTypes

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

創(chuàng)建Shell示例

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

注:Container 是基類當(dāng)中的一個(gè)容器屬性,可用于解析對(duì)象的依賴項(xiàng)注入容器

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

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

1.首先, 打開(kāi)VisualStudio的擴(kuò)展, 安裝Prism Template Pack包。

Prism Template Pack提供了什么?

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

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

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

注:同時(shí),Prism提供了基于Xamarin的項(xiàng)目模板, 因?yàn)镻rism是一個(gè)基于多個(gè)平臺(tái)的框架, 詳細(xì)見(jiàn): Prism框架介紹

結(jié)語(yǔ)

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

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

相關(guān)文章

最新評(píng)論