i have got appsettings setup in config.json this:
{ "appsettings": { "token": "1234" } } i have searched online on how read appsettings values config.json not useful.
i tried:
var configuration = new configuration(); var appsettings = configuration.get("appsettings"); // null var token = configuration.get("token"); // null i know asp.net 4.0 can this:
system.configuration.configurationmanager.appsettings["token"]; but how do in asp.net core?
this has had few twists , turns. i've modified answer date asp.net core 1.0 (as of 15/09/2016).
this taken the official documentation:
first, add needed dependencies our project.json file, under microsoft.extensions.configuration.* namespace:
{ "dependencies": { "microsoft.netcore.app": { "type": "platform", "version": "1.0.0" }, "microsoft.aspnetcore.mvc": "1.0.0", "microsoft.aspnetcore.server.iisintegration": "1.0.0", "microsoft.aspnetcore.server.kestrel": "1.0.0", "microsoft.extensions.configuration": "1.0.0", "microsoft.extensions.configuration.fileextensions": "1.0.0", "microsoft.extensions.configuration.json":"1.0.0", "microsoft.extensions.options.configurationextensions": "1.0.0", }, ... } to work settings in asp.net application, recommended instantiate configuration in application’s startup class. then, use options pattern access individual settings. let's have appsettings.json file looks this:
{ "applicationname": "myapp", "version": "1.0.0" } and have poco object representing configuration:
public class myconfig { public string applicationname { get; set; } public int version { get; set; } } now build configuration in in startup.cs:
public class startup { public iconfigurationroot configuration { get; set; } public startup(ihostingenvironment env) { var builder = new configurationbuilder() .setbasepath(env.contentrootpath) .addjsonfile("appsettings.json", optional: true, reloadonchange: true) configuration = builder.build(); } } if want inject our configuration our controllers, we'll need register runtime. via startup.configureservices:
public void configureservices(iservicecollection services) { services.addmvc(); // add functionality inject ioptions<t> services.addoptions(); // add our config object can injected services.configure<myconfig>(configuration); } and inject this:
public class homecontroller : controller { private readonly ioptions<myconfig> config; public homecontroller(ioptions<myconfig> config) { this.config = config; } // get: /<controller>/ public iactionresult index() => view(config.value); } full startup class:
public class startup { public iconfigurationroot configuration { get; set; } public startup(ihostingenvironment env) { var builder = new configurationbuilder() .setbasepath(env.contentrootpath) .addjsonfile("appsettings.json", optional: true, reloadonchange: true) configuration = builder.build(); } public void configureservices(iservicecollection services) { services.addmvc(); // add functionality inject ioptions<t> services.addoptions(); // add our config object can injected services.configure<myconfig>(configuration); } }
Comments
Post a Comment