services.AddSingleton<IConfiguration> 在 .net core 2 API 中真的需要吗?
Is services.AddSingleton<IConfiguration> really needed in .net core 2 API
我访问了 appsettings.json 在 .NET Core 2 Web API 控制器中,只需添加以下内容:
public class MyController : Controller
{
private readonly IConfiguration appConfig;
public MyController(IConfiguration configuration)
{
appConfig = configuration;
}
}
不在 Startup class ConfigureServices(IServiceCollection services) after services.AddMvc();:
中添加
services.AddSingleton<IConfiguration>(Configuration);
我的方法有什么缺陷吗?在 .Net Core 2 配置部分的官方文档中,它甚至没有提到使用 'AddSingleton' 一次:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration
同样搜索也没有找到与访问配置相关的内容!
https://docs.microsoft.com/en-us/search/index?search=AddSingleton&scope=ASP.NET+Core
下面的链接显示 AddSingleton 好像是强制性步骤:
正如 official roadmap for ASP.NET Core 2.0 所说:
An IConfiguration
instance will be added to the services container by default in ASP.NET Core 2.0, so that all applications can easily retrieve configuration values via the container
所以services.AddSingleton<IConfiguration>
(或类似的)已经被框架本身调用了。
您可能会在 WebHostBuilder.cs
file or (when using the utility extension methods) inside HostBuilder.cs
文件中看到此行为。
我不确定它是否是 needed.But 我们有 appsettings.local.json 如果我们不在 program.cs 中添加它,我们将无法从 appsetting.local.json 读取数据。
所以在 program.cs 中,我们在 program.cs
的 CreateWebHostBuilder
方法中添加 ConfigureServices
statament
var webHostBuilder = WebHost.CreateDefaultBuilder(args)
.UseApplicationInsights()
.ConfigureServices(services => services.AddSingleton<IConfiguration>(config))
.UseStartup<Startup>();
我访问了 appsettings.json 在 .NET Core 2 Web API 控制器中,只需添加以下内容:
public class MyController : Controller
{
private readonly IConfiguration appConfig;
public MyController(IConfiguration configuration)
{
appConfig = configuration;
}
}
不在 Startup class ConfigureServices(IServiceCollection services) after services.AddMvc();:
中添加services.AddSingleton<IConfiguration>(Configuration);
我的方法有什么缺陷吗?在 .Net Core 2 配置部分的官方文档中,它甚至没有提到使用 'AddSingleton' 一次:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration
同样搜索也没有找到与访问配置相关的内容! https://docs.microsoft.com/en-us/search/index?search=AddSingleton&scope=ASP.NET+Core
下面的链接显示 AddSingleton 好像是强制性步骤:
正如 official roadmap for ASP.NET Core 2.0 所说:
An
IConfiguration
instance will be added to the services container by default in ASP.NET Core 2.0, so that all applications can easily retrieve configuration values via the container
所以services.AddSingleton<IConfiguration>
(或类似的)已经被框架本身调用了。
您可能会在 WebHostBuilder.cs
file or (when using the utility extension methods) inside HostBuilder.cs
文件中看到此行为。
我不确定它是否是 needed.But 我们有 appsettings.local.json 如果我们不在 program.cs 中添加它,我们将无法从 appsetting.local.json 读取数据。
所以在 program.cs 中,我们在 program.cs
CreateWebHostBuilder
方法中添加 ConfigureServices
statament
var webHostBuilder = WebHost.CreateDefaultBuilder(args)
.UseApplicationInsights()
.ConfigureServices(services => services.AddSingleton<IConfiguration>(config))
.UseStartup<Startup>();