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
}
}