私はNinject(そして一般的にはDI)を使い慣れていません。初期化後のオブジェクト作成(Ninject)
は、私がどのようにカーネルをロード・モジュールを理解し、私がこれまでに書いたコードは、単一の行を持っている傾向がある:
私は私のモジュールに束縛から必要なすべてを構築するmyKernel.Get<MyApp>()
。初期化後の新しいインスタンスの要件がある場合、これらは初期化のためにバインドするファクトリによって処理されます。これまでは、工場では、必要に応じてオブジェクトを新しくするだけで、どんなプロジェクト依存もなくなっていました。
私は、初期化後のオブジェクト作成について考える必要があり、私自身の工場パターンがそれ以上カットしていないという点に達しました。これは、(リモート)クライアント用のpub/subインターフェースをサポートすることになります。私のサーバーへの新しい接続のたびに、ninjectモジュールで定義されたバインディングのセットに従って新しいIClient
インスタンスを作成したいと思います。これは、初期化時に渡される工場が独自のカーネル(またはメインカーネルへの参照)を持たなければならないことを意味しますか?どこにCommonServiceLocator機能がありますか? CSLは必要ですか?
私はあまりにも遠くを行き過ぎる前に、他の人がこの問題にどのように近づくかについてここで質問するのが最善であると思いました。
ありがとうございます。したがって、私が正しく理解していれば、2.3では、ファクトリインターフェイスの具体的な実装を作成することについて心配する必要はありませんか?実際の実装は、 'ToFactory()'呼び出しを使ってバインドされたときに何らかの形で発行されますか? – spender
はい、動的プロキシを使用して自動的に実装されます –
ニース。ご協力いただきありがとうございます。それは私の頭の中で多くの質問をクリアします。 – spender