您的位置:首页 > 移动开发

ASP.NET Core 注入和获取 AppSettings 配置

2017-04-27 19:47 911 查看
ASP.NET Core 项目中有个
appsettings.json
配置文件,用于存放一些配置信息,比如数据库连接字符串等,但访问的话,只能在 ASP.NET Core 项目中获取,如果我们在其他项目类库中,该怎样获取呢?

实现方式就是利用 ASP.NET Core DI,将配置信息注入到 IoC 中,通过构造函数获取注入的对象。

appsettings.json
示例代码:

{
"AppSettings": {
"AccessKey": "111111",
"SecretKey": "22222",
"Bucket": "3333333",
"Domain": "http://wwww.domain.com"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Error",
"System": "Information",
"Microsoft": "Information"
}
}
}

对应
AppSettings
对象代码:

public class AppSettings
{
public string AccessKey { get; set; }

public string SecretKey { get; set; }

public string Bucket { get; set; }

public string Domain { get; set; }
}

ConfigureServices
添加配置代码:

public void ConfigureServices(IServiceCollection services)
{
var appSettings = Configuration.GetSection("AppSettings");
services.Configure<AppSettings>(appSettings);
services.AddTransient<IUpoladService, UpoladService>();

// Add framework services.
services.AddMvc();
}

UpoladService
通过构造函数方式获取注入对象:

public class UpoladService : IUpoladService
{
private AppSettings _appSettings;

public UpoladService(IOptionsMonitor<AppSettings> appSettings)
{
_appSettings = appSettings.CurrentValue; //IOptions 需要每次重新启动项目加载配置,IOptionsMonitor 每次更改配置都会重新加载,不需要重新启动项目。
}
}

参考资料:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐