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