.NET Core类库项目中读取appsettings.json配置的方法

.NET Core类库项目中读取appsettings.json配置的方法

这是一位朋友问我的问题,写篇随笔回答一下。有2种方法,一种叫丑陋的方法 ——IConfiguration ,一种叫优雅的方法 —— IOptions 。

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 )

作为类库的设计者,你可以更贴心些,写个扩展方法进行上面的注入操作。

到此这篇关于.NET Core类库项目中如何读取appsettings.json中的配置的文章就介绍到这了,更多相关.NET Core读取appsettings.json配置内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    学习写字楼新选择6000元主流配置

    学习写字楼新选择6000元主流配置,,这种配置需要考虑双核心的办公和娱乐平台,充分考虑办公室的办公需求和娱乐需求,以约6000元的预算和cost-e

    酷睿I7 配置

    酷睿I7 配置,配置,玩家国度啦华硕 Rampage II Extreme(3800元)如果米不够,也可以把Extreme改为Gene,不过是小板内存推荐金士顿6G DDR3 2000骇

    无法读取U盘中的数据

    无法读取U盘中的数据,,核心提示:我有一个512MB的U盘,把它插在电脑显示器里面是空的,但右键单击以查看已经使用USB 480mb文件的属性未设置为隐

    提高3A四核羿龙II游戏配置的性能

    提高3A四核羿龙II游戏配置的性能,,以节能环保为主题的IT产业,目前3A低端平台处理器、主板芯片组、独立开发卡性能突出,特别是在与AMD的处理

    opporeno8参数配置及价格

    opporeno8参数配置及价格,面部,亿元,Oppo的荣誉2020年1月4日,接近屏幕关闭传感器是否支持双卡:支持oppor11splus什么时候上市的Oppo R11S P

    设置里程碑|设置里程碑的方法有哪些

    设置里程碑|设置里程碑的方法有哪些,,1. 设置里程碑的方法有哪些1、通过挑战风险,突破认知,从而突破自我。只有在某些特殊的时刻,比如想法和

    查看配置:酷睿i3530集展示办公平台

    查看配置:酷睿i3530集展示办公平台,,由于时间和精力的关系,我们不可能对所有的配置进行评论,希望我们能理解,我希望我们的评论能在那些需要帮

    3500元超额值学生娱乐结构的优化配置

    3500元超额值学生娱乐结构的优化配置,,作为一个DIY的主流用户领域的学生,每个用户51学生攒机的高峰。因为学生用户没有稳定的收入来源,攒机