将服务注入启动构造函数时出错
Error when inject service into startup constructor
我是 C# 新手。我正在尝试将项目从 ASP.NET Core 2.2 迁移到 3.1。我有以下异常:
System.InvalidOperationException: 'Unable to resolve service for type
'Dionis._1.TracingOptions' while attempting to activate
'Dionis._1.Startup'.'
在 program.cs 中的这一行 CreateHostBuilder(args).Build().Run();
。
启动:
public Startup(IConfiguration configuration, TracingOptions tracingOptions)
{
Configuration = configuration;
_tracingOptions = tracingOptions;
}
它在 ASP.NET Core 2.2 中工作。怎么了?我需要得到 TracingOptions
因为我在 ConfigureService
s 方法
中将它用于 services.AddTracing(_tracingOptions);
你用过migration guide吗?
The most significant change from WebHostBuilder
to HostBuilder
is
in dependency injection (DI). When using HostBuilder
, you can only
inject the following into Startup
's constructor:
- IConfiguration
- IHostEnvironment
- IWebHostEnvironment
你不能再这样了。相反,在 Startup.cs 中尝试类似的东西:
public void ConfigureServices(IServiceCollection services)
{
// other services
TracingOptions tracingOptions = Configuration.GetSection("YOUR_SECTION_NAME").Get<TracingOptions>());
services.AddTracing(tracingOptions);
}
我是 C# 新手。我正在尝试将项目从 ASP.NET Core 2.2 迁移到 3.1。我有以下异常:
System.InvalidOperationException: 'Unable to resolve service for type 'Dionis._1.TracingOptions' while attempting to activate 'Dionis._1.Startup'.'
在 program.cs 中的这一行 CreateHostBuilder(args).Build().Run();
。
启动:
public Startup(IConfiguration configuration, TracingOptions tracingOptions)
{
Configuration = configuration;
_tracingOptions = tracingOptions;
}
它在 ASP.NET Core 2.2 中工作。怎么了?我需要得到 TracingOptions
因为我在 ConfigureService
s 方法
services.AddTracing(_tracingOptions);
你用过migration guide吗?
The most significant change from
WebHostBuilder
toHostBuilder
is in dependency injection (DI). When usingHostBuilder
, you can only inject the following intoStartup
's constructor:
- IConfiguration
- IHostEnvironment
- IWebHostEnvironment
你不能再这样了。相反,在 Startup.cs 中尝试类似的东西:
public void ConfigureServices(IServiceCollection services)
{
// other services
TracingOptions tracingOptions = Configuration.GetSection("YOUR_SECTION_NAME").Get<TracingOptions>());
services.AddTracing(tracingOptions);
}