天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

使用 MEF 公開(kāi) Silverlight MVVM 應(yīng)用程序中的接口

  下載代碼示例

  許多開(kāi)發(fā)人員可能都將 Silverlight 視為以 Web 為中心的技術(shù),但實(shí)際上,它已經(jīng)成為構(gòu)建任何應(yīng)用程序的優(yōu)秀平臺(tái)。 Silverlight 本身就支持許多概念,例如數(shù)據(jù)綁定、值轉(zhuǎn)換器、導(dǎo)航、瀏覽器外操作和 COM 互操作,因此它可以相對(duì)直觀簡(jiǎn)便地創(chuàng)建任何種類的應(yīng)用程序。 我說(shuō)的是“任何種類”,其中當(dāng)然也包括企業(yè)級(jí)應(yīng)用程序。

  利用 Model-View-ViewModel (MVVM) 模式來(lái)創(chuàng)建 Silverlight 應(yīng)用程序,這使您除了能夠使用 Silverlight 中已有的功能以外,還能獲得更強(qiáng)的可維護(hù)性、可測(cè)試性以及用戶界面與其背后的邏輯之間的可分離性。 當(dāng)然,您不需要完全靠自己來(lái)解決所有問(wèn)題。 有很多信息和工具可以幫助您入門。 例如,MVVM Light Toolkit (mvvmlight.codeplex.com) 是一款輕量級(jí)框架,用于通過(guò) Silverlight 和 Windows Presentation Foundation (WPF) 來(lái)實(shí)現(xiàn) MVVM;借助代碼生成,WCF RIA 服務(wù) (silverlight.NET/getstarted/riaservices) 可幫助您輕松訪問(wèn) Windows Communication Foundation (WCF) 服務(wù)和數(shù)據(jù)庫(kù)。

  利用托管可擴(kuò)展性框架 (mef.codeplex.com)(簡(jiǎn)稱為 MEF),您可以進(jìn)一步擴(kuò)展 Silverlight 應(yīng)用程序。 此框架提供了探測(cè)功能,可利用組件和復(fù)合創(chuàng)建可擴(kuò)展的應(yīng)用程序。

  在本文的其余部分,我將介紹如何使用 MEF 來(lái)集中管理 View 和 ViewModel 創(chuàng)建工作。 當(dāng)您獲得此工具之后,所能做到的就不只是將 ViewModel 放入 View 的 DataContext 中了。 所有這些都將通過(guò)自定義內(nèi)置的 Silverlight 導(dǎo)航來(lái)實(shí)現(xiàn)。 當(dāng)用戶導(dǎo)航到給定的 URL 時(shí),MEF 會(huì)攔截此請(qǐng)求,查看路線(有點(diǎn)類似于 ASP.NET MVC),查找匹配的 View 和 ViewModel,通知 ViewModel 發(fā)生了什么,然后顯示 View。

  Getting Started with MEF

  由于 MEF 是將本示例中所有部分都連接起來(lái)的引擎,因此最好從它開(kāi)始。 如果您還不熟悉 MEF,請(qǐng)先閱讀 Glenn Block 的文章“在 .NET 4 中使用托管可擴(kuò)展性框架構(gòu)建可組合的應(yīng)用程序”,該文章發(fā)表在 MSDN 雜志 的 2010 年 2 月號(hào)上 (msdn.microsoft.com/magazine/ee291628)。

  首先,您需要處理 App 類的 Startup 事件,以便在應(yīng)用程序啟動(dòng)時(shí)正確配置 MEF:

private void OnStart(object sender, StartupEventArgs e) {
// Initialize the container using a deployment catalog.
var catalog = new DeploymentCatalog();
var container
= CompositionHost.Initialize(catalog);
// Export the container as singleton.
container.ComposeExportedValue<CompositionContainer>(container);
// Make sure the MainView is imported.
CompositionInitializer.SatisfyImports(this);
}

NET技術(shù)使用 MEF 公開(kāi) Silverlight MVVM 應(yīng)用程序中的接口,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 天美麻豆成人AV精品 | 午夜看片a福利在线观看 | 受喷汁红肿抽搐磨NP双性 | 亚洲精品色情APP在线下载观看 | 日产日韩亚洲欧美综合搜索 | 小泽玛丽av无码观看 | 久久永久视频 | 黑兽在线观看高清在线播放樱花 | 99久久精品国产国产毛片 | 不卡无线在一二三区 | 一个人的视频在线观看免费观看 | 国产亚洲精品99一区二区 | 一一本之道高清视频在线观看中文字幕 | 蜜芽TV影院在线视频 | 亚洲免费黄色 | 亚洲精品一本之道高清乱码 | 欧美激情精品久久久久 | 蜜芽TV影院在线视频 | 欧美最猛黑人AAAAA片 | 国产精品97久久AV麻豆 | 4438成人情人网站 | 性xxxx直播放免费 | 久久毛片视频 | 在线观看日本污污ww网站 | 免费a毛片 | 国产做国产爱免费视频 | 在线天天看片视频免费观看 | 人妻满熟妇AV无码区国产 | 精品久久伊人 | 大地影院日本韩国电影免费观看 | 92午夜免费福利757 | 怡春院欧美一区二区三区免费 | 乐乐亚洲精品综合影院 | 欧美乱妇狂野欧美在线视频 | 国产日韩欧美另类 | 成人人猿泰山 | 国产小视频国产精品 | 亚洲视频欧美视频 | 欧美GV肉片视频免费观看 | 欧美熟妇VIVOE精品 | 国产成人无码视频一区二区三区 |