2

Shellのブートストラッパーで利用できるだけでなく、PRISM以外のアプリケーションに組み込むこともできるWPFまたはSilverlightモジュールを作成したいと思います。

つまり、PRISMモジュールをシェルから初期化するのではなく、モジュール自体から初期化する方法はありますか?

究極の目標は、非PRISMアプリケーションで初期化できるWPF /SilverlightPRISMモジュールを用意することです。

4

2 に答える 2

2

これには何の障壁もありません。

IModuleインターフェイスには、パラメーターのない単一のメソッドがありますvoid: Initialize().

Prism 以外のアプリケーションは、そのメソッドを呼び出すことでモジュールを初期化できます。それでおしまい。

他のアプリケーションに別のプラグイン システムと別のインターフェイスがある場合、モジュールはそのインターフェイスも実装できインターフェイスが使用する初期化メソッドの本体は単純に を呼び出すことができますInitialize()

例えば:

public interface IMyPluginModule
{
    void StartModule();
}

public class MyModule : IModule, IMyPluginModule
{
    public void Initialize()
    {
        // actual initialization code here
    }

    public void StartModule()
    {
        Initialize();
    }
}
于 2010-12-14T01:27:01.337 に答える
1

一見したよりも少し複雑ですが、実行可能です。Prism 4 をまだ使用しているかどうかはわかりませんが、使用している場合、Microsoft は実際にこのシナリオのガイダンスを提供しています。

http://msdn.microsoft.com/en-us/library/ff921109(v=PandP.40).aspx

2 つのプロジェクトを並行して実行するには、少しプロジェクトを操作する必要があります。動作サンプルを確認する必要がある場合は、「MultiTargeting」と呼ばれる Prism v4 に含まれるサンプルがあります。

ただし、シェル/ブートストラップをオーケストレーションするのではなく、モジュールを単独で初期化できるようにすることに関するあなたの質問は、間違ったアプローチです。基本的には、WPF と Silverlight の 2 つのシェルになります。サンプルを見て、あなたの考えを見てください。

お役に立てれば。

于 2010-12-14T13:34:17.863 に答える