I have a .NET Core API project and I am trying to read some settings from the appsettings.json file.
The file looks like this:
{
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
},
"ConnectionString": "abc"
}
and I am trying to read the ConnectionString
setting like this:
ConfigurationManager.AppSettings["ConnectionString"];
but I get null
, and apparently no app settings have been detected at all.
Edit:
Here is what I have now:
startup.cs
public class Startup
{
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.AddDbContext<MyContext>();
services.AddMvc();
services.Configure<ConnectionStringSettings>(Configuration);
}
}
ConnectionStringSettings.cs
public class ConnectionStringSettings
{
public string ConnectionString { get; set; }
}
appsettings.json
{
"Logging": {
...
},
"ConnectionStrings": {
"Debug": "abc"
}
}
MyContext.cs public class MyContext : DbContext { string x;
public MyContext() { }
public MyContext(DbContextOptions<MyContext> options)
: base(options) { }
public MyContext(IOptions<ConnectionStringSettings> connectionStringSettings)
{
x = connectionStringSettings.Value.ConnectionString;
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
//here I need my connection string
optionsBuilder.UseMySql(connectionString);
}
}