2011-10-19 10 views
1

PRISMとMEFを使用してSilverlightアプリケーションを作成しました。 Webサービスまたはデータベース呼び出しを使用してモジュールカタログにデータを取り込む方法はありますか? PRISMのドキュメントに表示されている例は、Shellプロジェクトに含まれているXAPファイルを通じてモジュール情報を取得します。 私の場合、私はいくつかのサービスからこのリストを取得する必要があります。私は、IModuleCatalogを実装するカスタムModuleCatalogを作成することを提案した記事を読んでいます。Silverlight PRISMカスタムモジュールカタログを作成する

どのように進行するかについてのサンプルまたはコードスニペットを見つけることができません。 これを達成するための提案はありますか?

おかげで、 ディーパック

答えて

1

は、この要件のためのソリューションを手に入れました。ランタイムでのオンデマンドモジュールをロード行う INORDERは、モジュール情報オブジェクトは、データベースにヒットし、取得するWebサービスの呼び出しを、使用して移入された上記のコードに示すカタログ

  ModuleInfo moduleInfo = new ModuleInfo(); 
      moduleInfo.ModuleName = item.Name; 
      moduleInfo.ModuleType = item.Type; 
      moduleInfo.Ref = item.Reference; 
      ModuleCatalog.AddModule(moduleInfo); 

項目に追加する必要があります名前、タイプ、および参照(example.xap)。

これが正常にモジュールカタログを追加し、モジュールのカタログはちょうどちょうどModuleManagerによってを呼び出すボタンクリックまたは任意のイベント中にモジュールをロードするために

[Import(AllowRecomposition = false)] 
    public IModuleManager ModuleManager; 

    [Import(AllowRecomposition = false)] 
    public IModuleCatalog ModuleCatalog; 

INORDER以下のようにそのプロパティをインポートすることで任意のViewModelにで参照することができます.LoadModule(YourModuleName);それが利用できるようになります。

関連する問題