2011-12-07 6 views
2

Ninject MVCソースコードを調べていましたが、デフォルトを上書きするコントローラファクトリを生成するメソッドはNinjectControllerFactoryを返すようにハードコードされています。それはIControllerFactoryを使うほうが理にかなっています。なぜNinject MVC NinjectHttpApplicationがCreateControllerFactory()用にIControllerFactoryを使用しないのですか

/// <summary> 
/// Creates the controller factory that is used to create the controllers. 
/// </summary> 
/// <returns>The created controller factory.</returns> 
protected virtual NinjectControllerFactory CreateControllerFactory() 
{ 
    return new NinjectControllerFactory(this.Kernel); 
} 

私はNinjectを愛し、私はそれがこのように行われていた理由がある確信しているが、私は私自身のControllerFactoryを書いて、それを使用する必要があり、現時点では問題を抱えているのではなく、まだ使用しますNinjectHttpApplication。私はちょうどNinjectControllerFactoryから継承することができ、この新しいインスタンスを返すメソッドをオーバーライドすることができますが、Ninjectフレーバーの機能を使用していないので、ちょうどそれが臭いのビットになるようです...

IControllerを使用しない理由があるのですか?これは新しいバージョンで変更される可能性がありますか?

答えて

1

MVC 1.0または2.0のいずれかを参照していることを前提としています。 MVC 3.0はまったく異なる方法を取ります。

いいえIControllerFactoryを返さない理由はありません。これは自動リファクタリングの可能性が最も高く、認識されませんでした。一方、NinjectControllerFactoryを使用していない場合は、拡張機能をまったく使用する必要はほとんどありません。

+0

Ninject V 2.2.0.0に対する最新のビルドのためのソースコードは、まだControllerFactoryを使用しています。私がばかだとMVC2バージョンのものを持っていない限り。あなたがDependencyResolverを使用していなかったのは奇妙だと思っていました。 gitでソースをチェックし、今は問題ではないことを認識しました。 – Grofit

関連する問題