现在APPSetting下面配置以下节点
{ "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } }, "ConnectionStrings": { "Conn": "Host=10.10.1.15;Port=5432;Database=postgres;User ID=pgadmin;Password=nVNwFeaWMK8Sh6jW;" }, "Setting": { "Conn": "sqlLink", "Conn2": "sqlLink2", "Link": "LinkUrl" } }
比如说我要取ConnectionStrings
我们需要在startup里通过 IConfiguration Configuration这个属性来取
写法如下
var sqlConn = Configuration.GetConnectionString("Conn"); var sqlConn2 = Configuration["ConnectionStrings:Conn"];
返回结果如下
现在我们可以看到都成功读取到了配置文件中 Conn的内容
当然我们实际情况中肯定不止要取一个属性对吧所以下面介绍的取对象的方法
首先在啊 ConfigureServices方法里面注入
public void ConfigureServices(IServiceCollection services) { services .Configure<Setting>(Configuration.GetSection("Setting")) .AddMvc(); }
同时项目建立一个和AppSetting里相同键值的类 Setting
public class Setting { /// <summary> /// 数据库连接字符串 /// </summary> public string Conn { get; set; } public string Conn2 { get; set; } public string Link { get; set; } }
然后建立一个BaseController 以后所有需要用到的地方都继承BaseController
public class BaseController : Controller { private Setting Config; public BaseController( IOptions<Setting> setting) { Config = setting.Value; } }
我们此时来运行一下看下代码结果
此时我们可以看到已经取值成功,以后哪里需要用到的就可以通过Config.属性的方法去取