0

プロセス定義の動的ロード用の MEF

いくつかの部分で構成されるアプリケーションがあります。

  • ModelBuilder: ProcessDefinitions (アクティビティ、ゲートウェイ、イベントなど) とタスクの構築を可能にするドメイン モデル。
  • 具体的な ProcessDefinitions: 特定のビジネスを解決する ProcessDefinitions のコレクション。各アセンブリには、具体的な ProcessDefinitions、Task などのコレクションが含まれています。
  • ランタイム: Concrete ProcessDefinitions を含むアセンブリを動的にロードし、すべての Concrete ProcessDefinition パーツを検索する単純なサービス FindProcessDefinition(proceedingId,versionPolicy) を介してそれらを見つけられるようにしたいと考えています。ProcessDefinition はキャッシュ/シングルトンである必要があります。

MEF はこの問題を解決する方法だと思いますか? MEF の例を見てきましたが、これらはインターフェイスの実装に使用されており、この「ビルド」パターンには使用されていません。

それを行う方法のヒントはありますか?他の代替案はありますか?ありがとう。

4

1 に答える 1

0

具体的なプロセス定義と、それらのクラスをインスタンス化するビルダーに共通のインターフェイスがない場合、MEF は正しいツール (imo) ではないようです。

おそらく、それぞれのビルダーに共通のインターフェースを実装させることができます。しかし、それぞれの具体的なプロセス定義にも共通のインターフェースが必要になります。そうではないようです。あなたのコードでは、あなたはしません:

new ConcreteProcessDefinition1.run() 

new ConcreteProcessDefinition2.run(), 

あなたのコードでは、次のようなことをします

ConcreteProcessDefinition1.doXYZ(input1, input2)

ConcreteProcessDefinition2.doSomethingTotallyDifferent(input3)

プロセス定義を動的にロードする必要があるのはなぜですか? クライアント (ソース コードにアクセスできない) はプロセス定義を作成しますか?

于 2012-06-13T12:51:37.287 に答える