NInject (できれば 2.0) では、Web アプリケーションでオブジェクトの依存関係を結び付けるためにどのようなオプションがありますか?
それらは XML 構成ファイルで定義できますか?
それとも、コードを介して行う必要がありますか?
NInject (できれば 2.0) では、Web アプリケーションでオブジェクトの依存関係を結び付けるためにどのようなオプションがありますか?
それらは XML 構成ファイルで定義できますか?
それとも、コードを介して行う必要がありますか?
xml ベースの構成用の拡張機能があります: https://github.com/ninject/ninject.extensions.xml
ただし、コードでさらに強力なバインドを行うことができます。
NinjectにはXML構成がありません。申し訳ありませんが、直接リンクを提供することはできません(彼らのサイトにはフラッシュ要素があります)が、ninject.orgからの引用です:
XMLから自分を解放する
他のほとんどの.NET依存性注入フレームワークは、XMLを使用して型バインディングを宣言することを中心に設計されています。Ninjectは、面倒でエラーが発生しやすいテキストを作成するのではなく、本格的なコードを使用してアプリケーションの各部分を接続できる流暢なインターフェイスを備えています。これは、コード補完や型安全性など、IDEとコンパイラの機能を利用できることを意味します。
コードのみでバインディングを定義する場合の問題は、dll への参照を追加する必要があることです。新しい dll への参照を追加 (古いものへの参照を削除) せずにバインディングを変更し、コードを変更して再コンパイルすることはできません。
xml 構成があれば、参照はまったく必要なく、再コンパイルする必要もありません。現在、DIを使用してリポジトリをコントローラーに渡すMVCアプリがあります。バインディングを追加するための Ninject コードは、リポジトリの具体的な実装を使用します。それでも、実装を含む dll への参照を追加する必要があります。たった1行のコードで!
それとも、Ninject を使用してこれを達成する可能性はありますか?
何を達成しようとしていますか?どのようなものを設定しようとしていますか? 戦略を動的に選択しますか? ポート番号を渡す?より良い答えを得るために、あなたが考えていることについてもっと多くの情報を提供することができます[それを受け入れることができます:P]。
次の懸念事項を分割する必要があります。
appSettings
最初のプールでは、コードでそれを行うのが正しい方法であり、XML がもたらす利点は思いつきません。強い名前などのコンテキストで。