gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 18:21:41 25 4
gpt4 key购买 nike

我想将一个值从请求的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com