CastleWysorに登録されているサービスを検索するSystem.Web.Mvc.IDependencyResolverを実装しました。私のGetService(型serviceType)の実装は以下の通りです(MVC3 RC2用)。これはMVC IDependencyResolverの予想される動作ですか?
public object GetService(Type serviceType)
{
object service = null;
try
{
service = _container.Resolve(serviceType);
}
catch(Exception ex)
{
Logger.Warn("Could not resolve service-type {0} via {1}",
serviceType.Name, _resolverName);
}
return service;
}
これはうまく動作しますが、私は、私は私のログに表示さ警告に関する質問(「警告する」として、私はすべての例外をログに記録 - 上記のコードを参照)している:これらは
WARN Default [] - Could not resolve service-type Index_cshtml via
WindsorDependencyResolver
WARN Default [] - Could not resolve service-type RegistrationForm_cshtml via
WindsorDependencyResolver
WARN Default [] - Could not resolve service-type LoginForm_cshtml via
WindsorDependencyResolver
をしていますビュー。これは予想される動作ですか?もしそうなら、なぜ依存関係リゾルバはビューを探すよう求められますか?そうでない場合は、これを解決するために何をすべきですか?
私はIViewPageActivatorのインスタンスを登録していないことに注意してください(以下の警告を参照してください)。ビューはデフォルトの方法で解決されなければならないことをフレームワークに通知する必要があります。なぜ私は依然として依存関係リゾルバを通してビューに対するリクエストを見ることができますか?
こんにちは。はい、私はこれを知っています - 私は私のポストで言及しなかったことは、私はウィンザーとIViewPageActivatorを登録していないので、コールがこのタイプのために来るとき、私のDependencyResolverはnullを返します。ビューを解決するデフォルトの方法に戻ります。だからこそ私はなぜこのような視点を解決するための呼びかけがあるのか理解できません。 –
注意:依存関係リゾルバにIViewPageActivatorが存在しない場合、GetService(viewPageType) –
を呼び出すことによって、依存関係リゾルバに具体的なビューページタイプを作成するよう依頼します。私の卑劣な人。 OK - 動作が期待されます。今、特別なIViewPageActivatorは必要ありません。私はデフォルトの動作に満足しています。私は物事をそのまま残すべきですか(未解決の意見を無視し続けますか?)、私は何か他のことをしなければなりませんか? –