北流市邮编,只怪我的爱不够勇敢,牛牛工艺
iconfiguration
写一个 getappsetting
扩展方法在 .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
这个节点下的某个配置
实现代码:
/// <summary> /// getappsetting /// shorthand for getsection("appsettings")[key] /// </summary> /// <param name="configuration">iconfiguration instance</param> /// <param name="key">appsettings key</param> /// <returns>app setting value</returns> public static string getappsetting([notnull]this iconfiguration configuration, string key) { return configuration.getsection("appsettings")[key]; } /// <summary> /// getappsetting /// shorthand for getsection("appsettings")[key] /// </summary> /// <param name="configuration">iconfiguration instance</param> /// <param name="key">appsettings key</param> /// <returns>app setting value</returns> public static t getappsetting<t>([notnull]this iconfiguration configuration, string key) { return configuration.getsection("appsettings")[key].to<t>(); } /// <summary> /// getappsetting /// shorthand for getsection("appsettings")[key] /// </summary> /// <param name="configuration">iconfiguration instance</param> /// <param name="key">appsettings key</param> /// <param name="defaultvalue">default value if not exist</param> /// <returns>app setting value</returns> public static t getappsetting<t>([notnull] this iconfiguration configuration, string key, t defaultvalue) { return configuration.getsection("appsettings")[key].toordefault(defaultvalue); } /// <summary> /// getappsetting /// shorthand for getsection("appsettings")[key] /// </summary> /// <param name="configuration">iconfiguration instance</param> /// <param name="key">appsettings key</param> /// <param name="defaultvaluefunc">default value func if not exist to get a default value</param> /// <returns>app setting value</returns> public static t getappsetting<t>([notnull] this iconfiguration configuration, string key, func<t> 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<int>("number"); system.console.writeline($"city:{city}, number:{number}");
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论