asp.net-web-api – 我可以在WebAPI messageHandler中使用Autofac DI吗?

前端之家收集整理的这篇文章主要介绍了asp.net-web-api – 我可以在WebAPI messageHandler中使用Autofac DI吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_403_1@我成功地在我的ASP.NET WebAPI项目中连接了Autofac,现在我想知道如何能够解决我的MessageHandlers中的服务.

由于MessageHandler必须在应用程序启动时添加,很明显,我将无法在请求生存期内解决这些问题.这里没有问题

但是,我想在MessageHandler的SendAsync方法执行期间找到一种获取当前请求生存范围的方法,以便能够(例如)执行令牌验证,登录存储库等…

我该怎么办?

解决方法

您可以在HttpRequestMessage上使用GetDependencyScope()扩展方法,该方法为您提供了一个IDependencyScope,您可以从其中解析您处理程序中所需的任何服务:
  1. public class MyHandler : DelegatingHandler
  2. {
  3. protected override Task<HttpResponseMessage> SendAsync(
  4. HttpRequestMessage request,CancellationToken cancellationToken)
  5. {
  6. IMyService myservice =
  7. (IMyService)request.GetDependencyScope().GetService(typeof(IMyService));
  8. // Do my stuff with myservice
  9. return base.SendAsync(request,cancellationToken);
  10. }
  11. }

猜你在找的asp.Net相关文章