request - 在 WebApi Core ConfigureServices 中访问 services.AddScoped 中的请求 header ?

标签 request .net-core asp.net-core-webapi request-headers

我想将一个值从请求的 header 分配给每个请求作为单例的类实例。
我想在 ConfigureServices 中用 .net core 分配它Startup 中的方法类(class)。
像这样的东西:

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 中的请求 header 方法?

最佳答案

最干净的方法 是改变你的MyClass构造函数如下:

public MyClass(IHttpContextAccessor httpContextAccessor)
{
    this.PropName = httpContextAccessor.HttpContext?.Request?.Headers["PropName"]
}

然后在您的 DI 设置中:

services.AddScoped<MyClass>();

或者 ,如果你真的需要在你的 DI 设置中访问它,你可以修改如下:

services.AddScoped<MyClass>(provider =>
{
    var myClass = new MyClass();
    myClass.PropName = provider.GetService<IHttpContextAccessor>()?.HttpContext?.Request?.Headers["PropName"];
});

关于request - 在 WebApi Core ConfigureServices 中访问 services.AddScoped 中的请求 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47549139/

相关文章:

c# - 具有管理 View 的 REST API 设计

rest - DTO 和 API 资源有什么区别

c# - Serilog 实现打破了其他配置

c# - Angular 7 到 dotnetcore 2.1 web api 调用没有响应

javascript - nodejs请求url并返回json,body为空

database - 如何在 MVVM 中使用 View 模型?

c - 通过自定义 apache 模块避免登陆页面重定向

php - 在 PHP 中读取请求负载

c# - 为什么我在上传较大文件时出现 CORS 错误?

c# - Specflow - 使用来自 .NET Core 的 Microsoft 依赖注入(inject)导致 BoDi.ObjectContainerException