2009-06-11 9 views
1

興味のあること:ASP.net MVCでは、独自のControllerFactoryをロールバックすることができます。なぜあなたはそれをしたいと思うのだろうか?あなた自身のControllerFactoryをロールするのが理にかなっている依存関係注入を参照してください。しかし、なぜ私はコントローラでDIを使いたいのかわかりません。例/使用 - 独自のControllerFactoryを構築する場合?

モデルをスワップアウトすると、ビューを交換することも明らかになりますが、アーキテクチャーの悪夢にならないコントローラーを交換するためのユースケースを考えることができるかどうかはわかりません。

例はありますか?

答えて

3

我々は2つの理由のためにそれを行う:

  1. 依存性の注入。これは、単体テストコントローラのモデルを交換する方法です。コントローラには、必要なモデルタイプを取得するためのサービスインタフェースリファレンスがあります。
  2. デフォルトの "ControllerName + Controller"規則を無効にします。私たちは、実際には、エンドユーザが見るすべてのコントローラに対して特定のコントローラタイプを持っているわけではありません。場合によっては、コントローラを動的に生成します。これらのケースは、コントローラの工場で処理されます。

つまり、これはほんの数行のコードです。実際の作業のほとんどは、フレームワークから継承されたコントローラファクトリによって実行されます。あなたの質問に対する答えは部分的には「あまりない」です。

1

私はCraigがあなたの質問の「ユースケース」の部分に答えてくれました。そして、あなた自身のController Factoryを作成するのはとても簡単です。

ここでは、NinjectをIocコンテナとして使用する方法の例を示します。多分それは他人を助けるでしょう。また、あなたの質問の「例」部分に答えることを願っています。

http://www.craftyfella.com/2010/02/creating-aspnet-mvc-2-controller.html

関連する問題