Eil*_*aee 12 autofac asp.net-web-api
我成功地在我的ASP.NET WebAPI项目中连接了Autofac,现在我想知道如何在我的MessageHandlers中解析服务.
由于必须在应用程序启动时添加MessageHandler,因此很明显我无法在请求生命周期范围内解析它们.这里没问题.
但是,我想找到一种方法来获取MessageHandler的SendAsync方法执行期间的当前请求生命周期范围,以便能够(例如)执行令牌验证,登录存储库等...
我该怎么办?
nem*_*esv 20
您可以使用GetDependencyScope()的扩展方法,HttpRequestMessage它给你一个IDependencyScope从那里你可以解决你在你的处理程序想要的任何服务:
public class MyHandler : DelegatingHandler
{
protected override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken)
{
IMyService myservice =
(IMyService)request.GetDependencyScope().GetService(typeof(IMyService));
// Do my stuff with myservice
return base.SendAsync(request, cancellationToken);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2375 次 |
| 最近记录: |