Web services 如何将从授权标头获得的值插入构造函数

Web services 如何将从授权标头获得的值插入构造函数,web-services,dependency-injection,constructor,asp.net-core-3.1,Web Services,Dependency Injection,Constructor,Asp.net Core 3.1,我正在编写的服务如下所示: services.AddScoped<a,b>(); ... public interface a public class b:a { private readonly someDB db; public b(someDB db) { this.db = db; } } 问题是从请求中检索到someType值。如何将该值注入构造函数? 为了简单起见,让我们考虑类型Boo[如果它在请求中,那么在DI容器调用构造函数的

我正在编写的服务如下所示:

services.AddScoped<a,b>();
...
public interface a

public class b:a
{
   private readonly someDB db;
   public b(someDB db)
   {
      this.db = db;
   }
}
问题是从请求中检索到someType值。如何将该值注入构造函数?
为了简单起见,让我们考虑类型Boo[

如果它在请求中,那么在DI容器调用构造函数的时候就不可用了。< /P> 但是,您可以在请求范围内访问的成员中插入

IHttpContextAccessor
并提取头信息

public class b : a {
    private readonly someDB db;
    private readonly IHttpContextAccessor accessor;

    public b(someDB db, IHttpContextAccessor accessor) {
        this.db = db;
        this.accessor = accessor;
    }

    public void SomeMemberThatUsesT() {
        var request = accessor.HttpContext.Request;
        //extract desired header data
    }
}
public class b : a {
    private readonly someDB db;
    private readonly IHttpContextAccessor accessor;

    public b(someDB db, IHttpContextAccessor accessor) {
        this.db = db;
        this.accessor = accessor;
    }

    public void SomeMemberThatUsesT() {
        var request = accessor.HttpContext.Request;
        //extract desired header data
    }
}