我正在尝试使用Ninject来解决我在asp.net web api中的DelegatingHandler中的依赖关系。
我正在global.asax
注册自定义委托处理程序,如下所示:
GlobalConfiguration.Configuration.MessageHandlers.Add(
DependencyResolver.Current.GetService<AuthorizationHeaderHandler>());
我想知道MessageHandlers的生命周期是什么?使用IoC容器在委托处理程序中注入依赖项是否有意义?
答案 0 :(得分:4)
委托处理程序仅在应用程序启动时初始化一次。 将它们视为进程间中介,而不是单个请求/响应生命周期的一部分。
如果您希望更改此项 - 有一个工作项可以在Codeplex中更改此项 - http://aspnetwebstack.codeplex.com/workitem/62您可以投票支持该功能,它可能会被带入Web API vNext。
目前,向处理程序注入任何内容的最佳选择是手动解决依赖关系,因此使用(不幸的是)服务位置。