访问服务中的请求标头。AddScoped in WebApi Core ConfigureServices?



我想将值分配给从请求的标题到每个请求的类实例。
我想在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"];
});

最新更新