Fal*_*con 4 c# asp.net json asp.net-core
认为我的startup.cs有问题,因为我没有从我那里得到任何值 <IOption> config
所以..我们有我们的appsettings.json
"Config": {
"ApplicationName": "some name",
"ConnectionString": "someconstring",
"Version": "1.0.0"
},
Run Code Online (Sandbox Code Playgroud)
在这里,我们有我们的模型
public class Config
{
public string ApplicationName { get; set; }
public string ConnectionString { get; set; }
public string Version { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
startup.cs
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public static IConfiguration Configuration { get; set; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
// Add functionality to inject IOptions<T>
services.AddOptions();
// Add our Config object so it can be injected
services.Configure<Config>(Configuration);
}
Run Code Online (Sandbox Code Playgroud)
然后在我们的控制器中,我尝试加载那些数据,但是不幸的是,它们仍然为空。
private IOptions<Config> config;
public CompaniesController(IOptions<Config> config)
{
this.config = config;
}
Run Code Online (Sandbox Code Playgroud)
我试图用类似的东西更改startup.cs
services.Configure<Config>(options =>
{
options.ConnectionString = Configuration.GetSection("Config:ConnectionString").Value;
});
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用。
我一直在使用的资源:
https://dzone.com/articles/dynamic-connection-string-in-net-core
/sf/ask/2201744681/
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options?view=aspnetcore-2.2
Run Code Online (Sandbox Code Playgroud)
但是很显然,我在这里缺少关键点。
编辑:我正在使用ASP.Net Core 2.0
编辑2:
在Program.cs中
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
Run Code Online (Sandbox Code Playgroud)
整个Appsettings.json文件
{
"Config": {
"ApplicationName": "somename",
"ConnectionString": "someconstring",
"Version": "1.0.0"
},
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
services.Configure<Config>(Configuration)
;
由于您要查找的JSON属性嵌套在文件中的Config
属性下,因此此行无法达到预期的效果appsettings.json
。为了加载这些值,你需要使用GetSection
抓取Config
部分,并通过该进入Configure<TOptions>
方法:
services.Configure<Config>(Configuration.GetSection("Config"));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1864 次 |
最近记录: |