appsetting mysql_给IConfiguration写一个GetAppSetting扩展方法(示例代码)

给 IConfiguration 写一个 GetAppSetting 扩展方法

Intro

在 .net core 中,微软已经默认使用 appsettings.json 来代替 app.config,并重新设计了一套完整的配置系统,可以支持 json/xml/ini/环境变量等。

在 .net core 中有一个 GetConnectionString 的扩展方法用来比较方便的获取链接字符串,类似于在 .net framework 中使用 ConfigurationManager.ConnectionStrings["key"] 来获取链接字符串。

这次来参考 GetConnectionString 实现一个 GetAppSetting,类似于 .net framework 中使用 ConfigurationManager.AppSettings 来获取配置值。

实现代码

GetConnectionString 是获取 ConnectionStrings 这个节点下的某个配置,

GetAppSetting 来获取 AppSettings 这个节点下的某个配置

实现代码:

///

/// GetAppSetting

/// Shorthand for GetSection("AppSettings")[key]

///

/// IConfiguration instance

/// appSettings key

/// app setting value

public static string GetAppSetting([NotNull]this IConfiguration configuration, string key)

{

return configuration.GetSection("AppSettings")[key];

}

///

/// GetAppSetting

/// Shorthand for GetSection("AppSettings")[key]

///

/// IConfiguration instance

/// appSettings key

/// app setting value

public static T GetAppSetting([NotNull]this IConfiguration configuration, string key)

{

return configuration.GetSection("AppSettings")[key].To();

}

///

/// GetAppSetting

/// Shorthand for GetSection("AppSettings")[key]

///

/// IConfiguration instance

/// appSettings key

/// default value if not exist

/// app setting value

public static T GetAppSetting([NotNull] this IConfiguration configuration, string key, T defaultValue)

{

return configuration.GetSection("AppSettings")[key].ToOrDefault(defaultValue);

}

///

/// GetAppSetting

/// Shorthand for GetSection("AppSettings")[key]

///

/// IConfiguration instance

/// appSettings key

/// default value func if not exist to get a default value

/// app setting value

public static T GetAppSetting([NotNull] this IConfiguration configuration, string key, Func defaultValueFunc)

{

return configuration.GetSection("AppSettings")[key].ToOrDefault(defaultValueFunc);

}

使用

使用起来和 GetConnectionString 差不多

测试 appsettings.json

{

"ConnectionStrings": {

"TestDb": "server=.;database=Test;uid=weihanli;pwd=Admin888"

},

"AppSettings":{

"Number": 12,

"City": "Shanghai"

}

}

GetAppSetting 示例

IConfiguration configuration = new ConfigurationBuilder()

// ...

.AddJsonFile("appsettings.json")

.Build();

var city = configuration.GetAppSetting("City");

var number = configuration.GetAppSetting("Number");

System.Console.WriteLine($"City:{city}, Number:{number}");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值