1

ものを分離し、NuGet を介してプラグインするという最近の精神の中で、依存関係リゾルバーを MVC3 の 1 つの領域だけに制限する方法について誰か考えがありますか? ビューとコントローラーを特定の領域に制限するのは簡単ですが、明らかなフックが見られない限り、IDependencyResolver の設定は不可避的にグローバル スコープを持つものであるように見えます。エリアを1つに限定したい。

助言がありますか?

4

3 に答える 3

2

IDependencyResolver設計上グローバルです。領域ごとに動作を変えたい場合は、コンテキスト オブジェクトに基づいて決定できるさまざまな *Activator タイプとインターフェイスを調べる必要があります。

具体的に何をしようとしていますか?

于 2010-11-18T05:25:37.157 に答える
1

これには Common Service Locator を使用することをお勧めします。基本的に、各エリアは特定のコンテナ用に CSL をセットアップできます。

おそらく、依存関係リゾルバーの間にアダプターを作成するか、それを完全に放棄して CSL を厳密に使用する必要があります。

一般に、私は基幹業務アプリで CSL を使用することを支持していません。これは、DI を使用するオープン ソース コンポーネント (MassTransit など) を基幹業務アプリに簡単に統合できるようにすることを目的としています。ただし、これは例外かもしれません。

また、mvccontrib のポータブル領域も調べてください。このタイプのために設計されています。

于 2010-11-18T17:58:31.867 に答える
0

あなたがやろうとしていることは悪い考えのように聞こえます。依存性注入のポイントは、特定の依存性を分離し、コードがどこから来たのか気にしないようにすることです。

一部のオブジェクトまたはクラスを特定の MVC 領域に制限しようとしている場合は、適切なタイミングで適切なものを呼び出すように依存性インジェクターを構成します。

あなたがやろうとしていることについての詳細は、より良い答えを生み出すのに役立ちます.

于 2010-11-18T06:58:54.107 に答える