gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 20:10:09 26 4
gpt4 key购买 nike

我成功地将 Autofac 连接到我的 ASP.NET WebAPI 项目中,现在我想知道如何能够解析我的 MessageHandler 中的服务。

由于必须在应用程序启动时添加 MessageHandler,因此很明显我无法在请求生命周期范围内解析它们。这里没问题。

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

我该怎么做?

最佳答案

您可以在 HttpRequestMessage 上使用 GetDependencyScope() 扩展方法,该方法为您提供一个 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);
}
}

关于asp.net-web-api - 我可以在 WebAPI messageHandler 中使用 Autofac DI 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12610082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com