3

我正在尝试使用 Ninject 来解决我在 asp.net web api 中的 DelegatingHandler 中的依赖关系。

我正在注册自定义委托处理程序,global.asax如下所示:

GlobalConfiguration.Configuration.MessageHandlers.Add(
            DependencyResolver.Current.GetService<AuthorizationHeaderHandler>());

我想知道 MessageHandlers 的生命周期是多少?使用 IoC 容器在委托处理程序中注入依赖项是否有意义?

4

1 回答 1

4

委托处理程序仅在应用程序启动时初始化一次。将它们视为进程中的中介,而不是单个请求/响应生命周期的一部分。

如果您希望对此进行更改 - 在 Codeplex 上有一个工作项可供更改 - http://aspnetwebstack.codeplex.com/workitem/62您可以投票支持该功能,它可能会被引入 Web API vNext。

目前,将任何东西注入处理程序的最佳选择是手动解决依赖关系,因此(不幸的是)使用服务位置。

于 2012-11-02T13:58:36.627 回答