私はちょうどIoCコンテナを使い始めており、まずはNinjectを手に入れました。私はあなたがカーネルに組み込むことができる別々のモジュールの原則を理解しています。しかし、私のコードのどこにも最初の行を置いて、私がサービス層から何かを具体的に実装しようとしているのであれば、私は不思議です。Ninject/IoC StandardKernelの適切な初期化
IKernel kernel = new StandardKernel(new SimpleModule());
// example: getting my ContentService
IContentService contentService = kernel.Get<IContentService>();
私はモジュールとあらゆる方法でカーネルまで、私は本当に新しいべきContentServiceを使用する10個の方法でクラスを持っている場合は?コード臭のようです。ほとんどの開発者はNinjectでこれをどのように処理しますか?コンシューマークラスでこれを行う適切な方法を示すオンラインの記事はありますか?
Common Service Locatorを使用するルートを辿ると、ここに記載されているNinject List <>機能をあきらめますか:http://stackoverflow.com/questions/7959709/ninject-multicasting – BuddyJoe
私はそれについてはわかりませんが、 Common Service Locatorが必要とするインタフェースの実装に依存しているためです。それはテストの価値がある。とにかく、私のopnion数が、サービスの場所を使用しないでください。依存関係を注入することでテストを書くのが簡単です(必要なときに質問するのではなく)。 – Fernando
私はそれに背を向けています(SL)。単純なWinFormアプリケーションのようにいくつかのプロジェクトがどのようにDIで動作するかのように私の頭を抱かせようとしています。 – BuddyJoe