• <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實現頁面動態裝配(1)

    發表于:2010-03-26來源:作者:點擊數: 標簽:SilverlighStudioVisualvisualstudio
    Visual Studio 2010中Silverligh實現頁面動態裝配(1) 軟件測試 .NET 4.0中提供了一個MEF框架用于 開發 支持插件的軟件系統,幸運的是,Silverlight 4也支持MEF,這就使得我們可以很容易地實現頁面的動態裝配功能。 .NET 4.0中提供了一個MEF框架用于開發支持

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

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

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

      用戶在訪問Silverlight應用程序時,開始可以只顯示一個“初始的簡單的”頁面,當用戶需要時,動態從Web網站上下載新的程序集,然后,Silverlight客戶端應用程序再使用MEF將動態下載的程序集中所包容的頁面組件“組裝”為一個新的功能增強了的頁面,示例解決方案DynamicComposePage展示了相關的技術細節。下面簡要介紹一下其開發步驟。

      1 使用Visual Studio 2010創建一個名為DynamicComposePage的Silverlight Business Application項目,Visual Studio 2010將會幫助我們創建一個名為DynamicComposePage.Web的ASP.NET網站,它引用名為DynamicComposePage的Silverlight項目。

      在解決方案資源管理器中展開DynamicComposePage項目節點,在其Views文件夾下可以看到Visual Studio 2010生成的一個Home.xaml頁面,等一會我們將修改此頁面實現頁面的動態裝配。

      2 現在需要提供一個MEF部件都遵循的接口,為此,向解決方案中添加一個“Silverlight類庫(Silverlight Class Library)”項目[1]MyPartContract,并向其中添加一個IMyPart接口,為簡單起見,本例不為此接口添加任何成員,當然,在實際開發中可以依據需要為其添加合適的成員。

      namespace MyPartContract { public interface IMyPart { } }

      注意:這不是普通的“類庫”項目,Silverlight所使用的程序集是重新編寫的,與標準的.NET Framework不一樣。

      3 下面定義可供動態組合的Silverlight頁面組件。

      向示例解決方案中添加一個名為“MyPageParts”的“Silverlight類庫(Silverlight Class Library)”項目,注意在彈出的對話框中選擇“Silverlight 4”。然后,向MyPageParts項目中添加一個“Silverlight User Control”,取名“MyEditorControl”,在這個頁面中我們將放置一個RichTextArea控件充當文字編輯器:

      

      現在,需要讓此用戶控件可以被MEF動態裝配,為此,需要完成兩個步驟:

      (1)給本項目(也包括前面創建的Silverlight項目DynamicComposePage)都添加對包容了IMyPart接口的Silverlight類庫MyPartContract的引用。

      (2)給本項目(也包括前面創建的Silverlight項目DynamicComposePage)都添加對MEF核心程序集System.ComponentModel.Composition.dll的引用,將要負責完成“裝配”工作的Silverligh項目DynamicComposePage還需要添加對另一個核心程序集System.ComponentModel.Composition.Initialization.dll的引用。注意:在以下位置才能找到上述程序集:C:\Program Files\Microsoft SDKs\Silverlight\v4.0\Libraries。下面是支持MEF動態裝配的Silverlight 4用戶控件的相應代碼,注意其中的“[Export]”標記:

    Silverlight 4用戶控件

      [Export(typeof(IMyPart))] public partial class MyEditor : UserControl,IMyPart { public MyEditor() { InitializeComponent(); } }

      4 現在開發進行“動態裝配”的Silverlight頁面(位于DynamicComposePage項目Views文件夾中的Home.xaml),在頁面上放置一個Button用于啟動裝配過程,另一個TextBlock用于顯示提示信息,更重要地,放置一個ContentControl作為部件容器,用于顯示動態裝配出來的頁面部件:

       ……

    老湿亚洲永久精品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>