C# 基于启动时请求的.NET核心自定义服务
以下是基于请求依赖项注入的.NET core示例: 我有基于一些http头的不同服务实现,我想根据请求加载特定的服务 在startup.cs中,我有以下代码:C# 基于启动时请求的.NET核心自定义服务,c#,.net,asp.net-core,dbcontext,C#,.net,Asp.net Core,Dbcontext,以下是基于请求依赖项注入的.NET core示例: 我有基于一些http头的不同服务实现,我想根据请求加载特定的服务 在startup.cs中,我有以下代码: services.AddDbContext<MyContext>(options => options.UseMysql); services.AddTransient<IMyService>(serviceProvider => { var
services.AddDbContext<MyContext>(options => options.UseMysql);
services.AddTransient<IMyService>(serviceProvider =>
{
var context = serviceProvider.GetRequiredService<IHttpContextAccessor>().HttpContext;
var header = context.Request.Headers["mycustomheader"];
if (header == "first") return new MyFirstService();
else return new SecondService();
});
这在.NET core中可能吗?您需要使用DI:
var context = serviceProvider.GetRequiredService<MyContext>();
var context=serviceProvider.GetRequiredService();
这与您为获取IHttpContextAccessor所做的操作相同,您需要使用DI:
var context = serviceProvider.GetRequiredService<MyContext>();
var context=serviceProvider.GetRequiredService();
这与获取
IHttpContextAccessor
所做的操作相同,您应该能够使用DI来实现:serviceProvider.GetRequiredService()
。这与您获取IHttpContextAccessor
所做的操作相同,感谢您的工作。您应该能够使用DI实现这一点:serviceProvider.GetRequiredService()
。这与您获取IHttpContextAccessor
所做的操作相同,谢谢您的帮助