我正在使用launchSettings.json并最终使用另一个json来放置我的配置变量。
首先,我将从launchSettings.json信息中读取信息,例如暴露端点的地址:port。
然后,我将使用另一个json(appSettings.json)来放置一些配置变量,例如它可以是应用程序的名称或某些连接的规则。
我尝试将IConfiguration
添加到单例上下文中,然后将其用于服务中。进入控制器,我无法从json中读取任何内容:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().AddNewtonsoftJson();
services.AddOpenApiDocument();
services.AddSingleton<IConfiguration>(Configuration);
}
这是我的服务的构造函数:
public ExampleService(IConfiguration Iconfiguration)
{
configuration = Iconfiguration;
configuration.GetValue<string>("port");
}
appSettings.json {“地址”:“ 127.0.0.1”,“端口”:8080,
“配置”:{
"address": "http://localhost", "port": 8081 } }
例如,从构造函数或其他方法中,我无法从appSettings.json中获取任何内容
什么是正确的配置?
这是仓库的网址: https://osharkokun.visualstudio.com/_git/Client-Server
谢谢
答案 0 :(得分:0)
否,您应该在IConfiguration
构造函数中获得Startup
的实例,例如
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
然后,如果您具有如下定义的配置部分
"portconfig":
{
"address": "http://localhost",
"port": 8081
}
您会看到该配置部分
public void ConfigureServices(IServiceCollection services)
{
services.Configure<portconfig>(Configuration.GetSection("portconfig"));
}
阅读文档以获取更多信息https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/index?view=aspnetcore-2.2
根据您的评论:您可以使用Configuration
属性(如
this.Configuration["Your_config_key"]