MapRoute拡張に 'namespace'という文字列[]パラメータを受け入れるオーバーロードが含まれていることに気づきました。私はGoogleが私に持っていたものを読んでいたと思います。これはおそらく、フレームワークが他の方法で見ていない場所でコントローラを見つけるのを助けることでしょう。ASP.Net MVC Controller名前空間配列
私はいくつかのスパイクを行い、コントローラを変な場所に置こうとしました。私はScriptsフォルダに1つ入れます。私は独立したルート名前空間を持つ別のアセンブリでも構築しました。
名前空間のパラメータにanytingを入れないと、すべて正常に機能しました。名前空間の1つを名前空間のparamに入れても、それでも私のすべてのコントローラが見つかりました。同様の名前のコントローラーの間の曖昧さを排除するために、この配列を使用すると思ったかもしれませんが、それも起こりませんでした。 MyContj.Controllers内のHomeControllerとSomeOtherName.Stuff内のHomeControllerはまだ衝突します。
私の質問は、そのパラメータは推奨されていませんか?それとも、私はまだ分かっていない方法で何とか使われていますか?
私はそれがうまくいくと思います。DefaultControllerFactoryで説明しているのと同じ場所を見つけましたが、上記のテストを実行すると、それはうまくいかなかったのです。 存在しなかった名前空間を提供しましたが、工場は引き続きコントローラを検出しました。 – Paul
ControllerTypeCacheのコードは、私にとってはうまくいくように見えます。ソースを使ってビルドすることで、デバッグすることができます。おそらくあなたが提供していないものがありますか? –
私はそれがそのように見えることに同意し、以前にテストするときにソースを作成しました。私はいくつかの異なるパラメータで再度試してみます。 – Paul