3

私は Onion アーキテクチャについて調べてきましたが、DI コンテナーがすべてを接続できるようにするには、アセンブリの依存関係をどのように配置する必要があるかについての簡単な質問だと思います。

次の構造を持つ非常に単純なソリューションを想定します。

UI => BL <= DAL

したがって、UI と DAL は BL を参照しますが、お互いを認識していません。

また、BL には IDatabaseService というインターフェイスがあり、DALDatabaseService によって DAL に実装されているとします。

コンテナーは (おそらく) UI のエントリ ポイントで構成されます。UI は DAL を認識していないため、IDatabaseService を登録して DALDatabaseService に解決するにはどうすればよいでしょうか?

4

1 に答える 1

2

ほとんどの場合、これはコンテナーに (構成を介して) DAL を認識させ、DAL のアセンブリを UI または他の既知の場所 (GAC など) と同じディレクトリに配置することによって行われます。Spring.NET では、Spring 構成ファイルに DAL の型を追加します。Castle Windsor では、IoC コンテナーに登録する型を持つ各 DLL に IWindsorInstaller を実装するクラスを含めることができます。UI では、特定のディレクトリ内のすべてのコンポーネントを検索するようにコンテナーに指示します。

于 2011-10-16T21:22:47.673 に答える