1

私の ASP.NET MVC 4 c# プロジェクトには 3 つのレイヤーがあります。データ、ビジネス、ウェブ。私はリポジトリのパターンとサービスに従います。

依存性注入には Autofac を使用します。私がしたことは、global.asax にコンポーネントを登録することでした。このようにして、リポジトリを実装したデータ層を参照する必要がありました。

私のWebプロジェクトにはデータレイヤーの参照があるため、これはルールに違反していると思います。

この問題の解決に関するいくつかの記事を読み、Autofac モジュールを見つけました。ただし、データ層も参照せずに実装する方法が見つかりませんでした。

データ層を参照せずにコンポーネントを登録する方法はありますか?

ありがとうございました。

4

1 に答える 1

1

私の意見では、あなたの状況はまさにあなたが探しているものです。

次のような参照構造は必要ありません: LibA => LibB => LibC => ...

最後に、必要なのは、すべてのプロジェクトを結び付ける 1 つの DLL/プロジェクト/コンポーネント (コンポジション ルートと呼ばれる) であり、コンポーネント間に依存関係がないため、ドメイン レイヤーは他のものに依存しません。

プレゼンテーション レイヤーからデータ レイヤーを参照しても問題ありません (コンポジション ルートがそこにある場合)。

モジュールは、アプリケーションのさまざまな部分にさまざまなコンポジション ルートが必要な場合に役立ちます。架空の例は、管理エリアと顧客エリアです。それらの依存関係が十分に異なる場合、それらは同じプロジェクトに存在しますが、各領域にコンポジション ルートを使用することをお勧めします。

于 2013-11-10T14:24:05.640 に答える