iT邦幫忙

0

asp.net Core C# Appsetting.json 動態取得連線字串一問

https://ithelp.ithome.com.tw/upload/images/20210303/20135501xZVu3rDUDo.jpg

大家好,在.net core專案中設定檔放置在appsetting.json中
要如何能動態取得檔案中的ConnectionStrings內容

https://ithelp.ithome.com.tw/upload/images/20210303/20135501AN8M6YUMDq.jpg

我所謂的動態取得,是在不知ConnectionStrings中有什麼Key及Value的狀況下
取得Key和Value,好讓後端可使用,動態連接資料庫
上圖中的config必須得知道Key是什麼才可取得該Value值,並非我所想要的

config["ConnectionStrings:DefaultConnection"] X
config.GetConnectionString("DefaultConnection") X
這些都不是我要的~

如果有知道的大大還請幫忙,感謝!!

看更多先前的討論...收起先前的討論...
石頭 iT邦研究生 2 級 ‧ 2021-03-03 10:36:06 檢舉
不太清楚你描述的"動態"取得是甚麼意思?
因為一般使用設定檔key不太會動態變化(會變得是value)
能否舉個例子 還有你為什麼需要這樣做?
我前端有個selector需要選擇資料庫,而資料庫內容來自appsetting.json,當然在我知道內容的狀況下,可以寫死去取得連線字串,故想要動態。

也就是我在設定檔新增了其他資料庫的連線字串,前端即可多一項資料庫選擇!
Homura iT邦高手 1 級 ‧ 2021-03-03 10:41:42 檢舉
這樣應該是用陣列方式取得吧
但是這樣還是要知道順序啊....
石頭 iT邦研究生 2 級 ‧ 2021-03-03 23:12:41 檢舉
前端至少也要給你key 你要有個地方存放Key/value (key前端selector給,value舊式你提供的資料庫資訊)
如果是這樣就不用動態了(因為你使用靜態文件)
.net core 提供方便的檔案讀取管理 你可以另外讀取一個 IConfiguration 再用DI注入你的組泰檔案

1 個回答

1
海綿寶寶
iT邦大神 1 級 ‧ 2021-03-03 10:32:38
using System.Configuration;

class Program
{
    static void Main()
    {
        GetConnectionStrings();
        Console.ReadLine();
    }

    static void GetConnectionStrings()
    {
        ConnectionStringSettingsCollection settings =
            ConfigurationManager.ConnectionStrings;

        if (settings != null)
        {
            foreach(ConnectionStringSettings cs in settings)
            {
                Console.WriteLine(cs.Name);
                Console.WriteLine(cs.ProviderName);
                Console.WriteLine(cs.ConnectionString);
            }
        }
    }
}

如果這個是你要的
這是資料來源 Example: Listing All Connection Strings

這內容看起來可以用,不過我得找找.net core的方法~還在測試中....

https://ithelp.ithome.com.tw/upload/images/20210303/20135501wHijxCBJVW.jpg

用了.net core的方法,但內容物似乎不是我要的,這個好像沒有讀取appsetting.json檔,還在測試是否可以選擇讀檔

我要發表回答

立即登入回答