• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Visual Studio 2010中Silverligh實現頁面動態裝配(2)

    發布: 2010-3-26 11:17 | 作者: 不詳 | 來源: 領測軟件測試網采編 | 查看: 62次 | 進入軟件測試論壇討論

    領測軟件測試網

      Visual Studio 2010中Silverligh實現頁面動態裝配(2)  軟件測試 

        .NET 4.0中提供了一個MEF框架用于開發支持插件的軟件系統,幸運的是,Silverlight 4也支持MEF,這就使得我們可以很容易地實現頁面的動態裝配功能。

      下面簡介一下此頁面中的關鍵代碼,首先,我們需要指定Home.xaml頁面“需要”一個IMyPart部件,為此,我們給Home類添加以下屬性,并且給其附加“[Import]”標記:

      [Import(typeof(IMyPart))] public IMyPart mypart { get; set; }

      在Home.xaml頁面初次顯示時,并不加載部件程序集,當用戶點擊按“我要編輯文本”按鈕后,動態創建一個WebClient對象從Web網站上下載程序集:

      private void DownloadAssemblyAndCompose() { //獲取程序集的URI string uri = Application.Current.Host.Source.AbsoluteUri; int index = uri.IndexOf("/ClientBin"); //找出根URL uriuri = uri.Substring(0, index) + "/MyParts/MyPageParts.dll"; WebClient client = new WebClient(); this.txtInfo.Text = "正在下載文本編輯器組件……"; client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted); //啟動異步下載 client.OpenReadAsync(new Uri(uri)); this.btnShowEditor.IsEnabled = false; //防止用戶第二次啟動下載…… }

      注意:在本示例中我們假設所有的可裝配部件都放在Web網站的MyParts文件夾下,并且假設我們已經知道了要下載的程序集文件名。在實際項目中,我們可以設計一個用于掃描部件文件夾并向Silverlight客戶端返回可裝配部件的WCF Service,以允許真正“全動態”的裝配工作。上述代碼為WebClient的下載完畢事件(OpenReadCompletedEvent)掛接了一個事件響應方法,其中包容了本例最核心的功能代碼:

      void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) { //加載資源 AssemblyPart part = new AssemblyPart(); Assembly ass = part.Load(e.Result); //提取程序集 //創建Catalog AssemblyCatalog cata = new AssemblyCatalog(ass); CompositionContainer container = new CompositionContainer(cata); CompositionBatch bat = new CompositionBatch(); bat.AddPart(this); container.Compose(bat); //裝配…… //顯示裝配好的頁面組件 if (mypart != null) MyEditorContainer.Content = mypart; }

      上述代碼中的關鍵在于下載程序集完成之后,從流中動態加載程序集,然后再調用MEF來裝配部件。

      5 最后一步,在Web網站中創建一個專用的部件文件夾“MyParts”,將包容了可裝配部件的程序集復制到這一文件夾下。

    創建MyParts文件夾

      下圖展示了示例項目運行時動態下載并組裝頁面的截圖:

    項目運行時動態

      從本示例看到,將MEF和WebClient組件結合起來,可以讓我們實現Silverlight頁面的“按需下載”和“動態組合”,充分展示了Silverlight 4的強大功能!

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: Silverligh studio Studio visual Visual 動態 頁面


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>