.NET Core类库项目中如何读取appsettings.json中的配置
2017-05-25 07:20
621 查看
这是一位朋友问我的问题,写篇随笔回答一下。有2种方法,一种叫丑陋的方法 —— IConfiguration ,一种叫优雅的方法 —— IOptions 。
1)先看丑陋的方法
比如在 RedisClient 中需要读取 appsettings.json 中的 redis 连接字符串:
需要在 RedisClient 的构造函数参数中添加 IConfiguration 接口,并通过它直接读取:
然后在 Startup 的 ConfigureServices() 方法中进行注入:
2)接着看优雅的方法
首先定义一个存放连接字符串的配置类 RedisOptions :
然后给 RedisClient 的构造函数参数中添加 IOptions<RedisOptions> 接口,通过 IOptions<RedisOptions> 读取配置,RedisClient 无需关心 appsettings.json :
而 appsettings.json 中的配置可以在 Startup 的 ConfigureServices() 中注入进去:
(注:使用上面的 Configure 方法需要安装 nuget 包 Microsoft.Extensions.Options.ConfigurationExtensions )
作为类库的设计者,你可以更贴心些,写个扩展方法进行上面的注入操作。
原文地址:http://www.cnblogs.com/dudu/p/6828045.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
1)先看丑陋的方法
比如在 RedisClient 中需要读取 appsettings.json 中的 redis 连接字符串:
{ "redis": { "ConnectionString": "xxx" } }
需要在 RedisClient 的构造函数参数中添加 IConfiguration 接口,并通过它直接读取:
public class RedisClient { private readonly string _connectionString; public RedisClient(IConfiguration configuration) { _connectionString = configuration.GetSection("redis")["ConnectionString"]; } }
然后在 Startup 的 ConfigureServices() 方法中进行注入:
public IConfigurationRoot Configuration { get; } public void ConfigureServices(IServiceCollection services) { services.AddSingleton<IConfiguration>(Configuration); }
2)接着看优雅的方法
首先定义一个存放连接字符串的配置类 RedisOptions :
public class RedisOptions { public string ConnectionString { get; set; } }
然后给 RedisClient 的构造函数参数中添加 IOptions<RedisOptions> 接口,通过 IOptions<RedisOptions> 读取配置,RedisClient 无需关心 appsettings.json :
public class RedisClient { private readonly RedisOptions _redisOptions; public RedisClient(IOptions<RedisOptions> redisOptions) { _redisOptions = redisOptions.Value; } }
而 appsettings.json 中的配置可以在 Startup 的 ConfigureServices() 中注入进去:
services.AddOptions(); services.Configure<RedisOptions>(Configuration.GetSection("redis"));
(注:使用上面的 Configure 方法需要安装 nuget 包 Microsoft.Extensions.Options.ConfigurationExtensions )
作为类库的设计者,你可以更贴心些,写个扩展方法进行上面的注入操作。
原文地址:http://www.cnblogs.com/dudu/p/6828045.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
相关文章推荐
- .NET Core类库项目中如何读取appsettings.json中的配置
- 【无私分享:ASP.NET CORE 项目实战(第六章)】读取配置文件(一) appsettings.json
- .NET Core在类库中读取配置文件appsettings.json
- 【无私分享:ASP.NET CORE 项目实战(第六章)】读取配置文件(一) appsettings.json
- 如何在ASP.NET Core类库项目中读取配置文件详解
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- .NET Core 中读取appsettings.json配置文件的方法
- [.NET Core] 简单读取 json 配置文件
- Android项目如何从本地读取JSON字符串
- ASP.NET Core读取appsettings.json的配置
- ASP.NET Core实现类库项目读取配置文件
- AspNet Core Web 应用程序的启动 当项目中 没有Startup.cs 类如何设置启动 配置等等
- .NET Core类库中读取配置文件
- 如何在类库项目中添加配置文件??????
- 设计模式(一)单例模式:创建模式 ASPNET CORE WEB 应用程序的启动 当项目中 没有STARTUP.CS 类如何设置启动 配置等等
- .Net Core 读取配置文件 appsettings.json
- net Core 2.0读取appsettings.json
- 如何读取Java项目不同路径的配置文件
- qt中关于如何读取配置文件学习 (vs2008+qt+mysql项目)
- ASP.NET Core实现类库项目读取配置文件