您的位置:首页 > 编程语言 > ASP

Asp.net core 学习笔记 ( Configuration 配置 )

2017-09-11 13:01 537 查看
配置写在 appsettings.json 里头

比如

{
"object": {
"prop": "value"
},
"array": [
{ "prop": "value" }
],
"businessConfig": {
"paypalEmail" : "hengkeat87@gmail.com"
}
}


startup.cs

namespace Project
{
public class BusinessConfig
{
public string paypalEmail { get; set; }
}

public class Startup
{
public Startup(IConfiguration configuration)
{
this.configuration = configuration;
}

public IConfiguration configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
// 各种获取 config 的方式
var value = configuration["object:prop"];
value = configuration["array:0:prop"];
var obj = configuration.GetSection("object");
value = obj["prop"];

// 绑定类型
string stringValue = configuration.GetValue<string>("object:prop");
BusinessConfig businessConfig = configuration.GetSection("businessConfig").Get<BusinessConfig>();

// 注册到 service 让 control 可以注入
services.Configure<BusinessConfig>(configuration.GetSection("businessConfig"));
}
}
}


controller.cs

public class HomeController : Controller
{
private readonly BusinessConfig businessConfig;
public HomeController(

// IOptionsSnapshot 对比 IOptions 特色是更新 config file 时, snapshot 能获取新值, 很奇怪, 不是说 snapshot 吗 ? 怎么反而可以获取到新值...纳闷
IOptionsSnapshot<BusinessConfig> businessConfigOptionsAccessor, // 能
// IOptions<BusinessConfig> businessConfigOptionsAccessor // 不能
)
{
businessConfig = businessConfigOptionsAccessor.Value;
}

public IActionResult Index()
{
string paypalEmail = businessConfig.paypalEmail;
return View();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: