I am trying to access values in my config.json file, but it is returning null values in my controllers and when testing in Startup.cs.
In Startup.cs
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("config.json", optional: true, reloadOnChange: true)
.AddJsonFile($"config.{env.EnvironmentName}.json", optional: true)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
builder.AddEnvironmentVariables();
Configuration = builder.Build();
}
public void ConfigureServices(IServiceCollection services)
{
/*...
...*/
services.AddOptions();
services.Configure<AppSettings>(Configuration.GetSection("MicrosoftAzureStorage"));
In the Controller
public class TestController : Controller
{
private string _token;
public IActionResult Index()
{
return View();
}
public TestController(IOptions<AppSettings>settings)
{
_token = settings.Value.token; //returns Null
}
AppSettings.cs
public class AppSettings
{
public string ApplicationName { get; set; }
}
Config.json
{
"MicrosoftAzureStorage":
{
"AzureStorageConnectionString": "RandomConnectionString"
}
}