我想将值分配给从请求的标题到每个请求的类实例。
我想在Startup
类中使用ConfigureServices
方法中的.NET核心分配。
这样的东西:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddScoped<MyClass>(provider =>
{
var myClass = new MyClass();
myClass.PropName = provider.Request.Headers["PropName"]; // I want to access Request Header here
});
}
如何在AddScoped
方法中访问请求的标题?
清洁方法是更改您的MyClass
构造函数,如下所示:
public MyClass(IHttpContextAccessor httpContextAccessor)
{
this.PropName = httpContextAccessor.HttpContext?.Request?.Headers["PropName"]
}
然后在您的DI设置中:
services.AddScoped<MyClass>();
另外 services.AddScoped<MyClass>(provider =>
{
var myClass = new MyClass();
myClass.PropName = provider.GetService<IHttpContextAccessor>()?.HttpContext?.Request?.Headers["PropName"];
});