私はDIと単体テストを始めたばかりで、経験豊富な開発者にとっては簡単なことだと確信している障害にぶつかりました:
データを受信してデータベースに保存する MessageManager というクラスがあります。同じアセンブリ (Visual Studio のプロジェクト) 内で、データベースへのアクセスに必要なすべてのメソッドを備えたリポジトリ インターフェイスを作成しました。このインターフェイスの具体的な実装は、DataAccess という別のアセンブリにあります。
そのため、DataAccess は、リポジトリ インターフェイスについて知るために MessageManager へのプロジェクト参照を必要とします。また、MessageManager のクライアントがリポジトリ インターフェイスの具体的な実装を挿入できるように、MessageManager には DataAccess へのプロジェクト参照が必要です。これはもちろん許可されていません
インターフェイスをデータ アクセス アセンブリに移動することもできますが、リポジトリ インターフェイスは、それを使用するクライアントと同じアセンブリに存在することを意図していると思います
それで、私は何を間違ったのですか?