1

私は3つのプロジェクトを持っています。

  1
 / \   - inheritance
2   3

1つのプロジェクトにObjectFactory.Initialize...があり、1つのインターフェイスと2つの実装があります。2つと3つのプロジェクトに2つの異なる実装を使用したいと思います。私は何をすべきですか?StructureMapを使用することは可能ですか?

4

2 に答える 2

1

ここでは、StructureMapが制限要因ではありません。2つのインターフェースの実装はどのプロジェクトにありますか?

それらがプロジェクト2および3にある場合は、ObjectFactoryを実行する必要があります。使用するインターフェイスの実装がわかっているプロジェクト2および3で初期化します。

それらがプロジェクト1にある場合は、プロジェクト1に2つの新しいクラスを作成して、プロジェクト2と3で必要な方法でコンテナーを初期化し、それぞれのプロジェクトに適切なクラスが使用されていることを確認できます。

どちらのシナリオでも、最終結果をサポートするためにコンテナーを構築するための2つの異なる方法が必要です。これは、この場合はプロジェクト2と3です。

于 2012-11-20T18:20:02.537 に答える
1

解決策が見つかりました。基本プロジェクトでは、初期化する必要があります。

ObjectFactory.Initialize(x => x...)

しかし、依存プロジェクトでは、ベースプロジェクトの初期化後に構成する必要があります。

ObjectFactory.Configure(x => x...)
于 2012-11-22T16:01:32.383 に答える