この質問はあまりにも愚かではないことを願っています。より高度なプログラミングの原則を習得しようとしているため、Ninjectを使用して依存性注入に慣れようとしていました。 。依存性注入:マルチプロジェクトソリューションを使用するときに注入する方法
私のモデルはいくつかの異なる.dllプロジェクトに分割されています。 1つのプロジェクトはモデル仕様(インタフェース)を定義し、他の2つはこれらのインタフェースを実装します。すべてのモデルプロジェクトは、ある種のデータベースシステムを使用する必要があるため、すべてのデータベースロジックを実装するさらに別の.dllにアクセスする必要があります。しかし、それらのすべてが私のデータベースオブジェクトの同じインスタンスにアクセスできることは重要です。したがって、モデルごとに1つのインスタンスを作成するだけでは不十分です。
しかし、依存性注入を使用してこれを達成する方法はわかりません。私の最初の考えは、別個のDIプロジェクトを作成し、すべてのインターフェイスをそれぞれの実装にバインドすることでした。したがって、DIプロジェクトは他のすべてのプロジェクト(モデルインターフェイス&の実装、データベースシステムなど)への参照が必要でした。そして、DIシステム(Ninject)からデータベースシステムを要求する必要があるなど、DIプロジェクトにアクセスする必要があります。もちろん、これは循環参照(DIプロジェクトにモデル化してモデル化するDIプロジェクトをバインドする)を作成するので不可能です。
短い話ですが、モデルインターフェイスを実装にバインドできるプログラミングパターンが必要ですが、モデル実装ではNinjectから他の依存関係を要求することもできます。
IModel1 -> Model1
IModel2 -> Model2 (different project)
IDatabase -> Database (different project)
Model1 -> request IDatabase -> get Database instance
Model2 -> request IDatabase -> get the same Database instance
は、私が立ち往生し、アイデアの出だ瞬間に、提案のカップルを得るために喜んでいるだろう;) ありがとう!
これはウェブサイト用ですか? –