2011-10-19 14 views
1

私はMVCの新機能です。私はサンプルのMVCプロジェクトを作成するためにSteve SandersonのMVCの本に従っています。このプロジェクトでは、カスタムControllerFactoryの実装にninjectを使用しました。以前のバインディングステートメントを使わずにControllerFactoryでControllerクラスを解決できる部分を理解していません。どのようにカーネルオブジェクトが最初にコントローラ情報を取得しましたか?NinjectはMVCのコントローラをどのように解決しますか?

どうもありがとう

アンディ

+2

mvc 3では、カスタム依存リゾルバを作成することをお勧めします。それはコントローラ工場より深い統合を可能にし、コントローラ、modelbinders、viewengines、filterprovidersのようなものを構築することができます... –

答えて

1

は、ほとんどの場合、彼はデフォルトで登録されているコントローラの工場を表しDefaultControllerFactoryの子クラスを作成します。 MSDNからは、次のことに注意してください。このクラスは、コントローラの作成をわずかに変更したい開発者にとって便利な基本クラスを提供します。したがって、GetControllerInstanceメソッドをオーバーライドし、Ninjectを使用してコントローラタイプに基づいてコントローラを作成できます。

しかし、現在のコントローラファクトリは、Global.asaxファイル、具体的にはApplication_Start()にSetControllerFactoryを使用して登録し、子クラスタイプを型コンストラクタに渡す必要があります。これは、MVCに、デフォルトのMVCコントローラファクトリの代わりにコントローラを作成するために、カスタムコントローラクラスを使用する必要があることを効果的に示します。

関連する問題