日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

给 IConfiguration 写一个 GetAppSetting 扩展方法

發布時間:2023/12/4 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 给 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 這個節點下的某個配置

實現代碼:

  • /// <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}");

  • 總結

    以上是生活随笔為你收集整理的给 IConfiguration 写一个 GetAppSetting 扩展方法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。