2017-06-28 18 views
2

我正在研究如何在.Net Core中加載啓動配置。我注意到有不同的方法可以做到這一點,我已經看到了XML,JSON,init文件,並從位於內存中的字典(我將在稍後回到此處)。我使用類似下面的代碼:從位於內存中的JSON加載啓動配置

new ConfigurationBuilder().AddJsonFile("file.json").Build(); 

所有這一切都OK,但是,是不是有什麼辦法可以從一個JSON字符串加載配置?我的意思是,我不想將json存儲在臨時文件中,因爲它是一個實時構建的文件,它沒有任何意義。

關於位於內存中的字典。它很容易手動構建,但是,對於複雜和過於分層的JSON結構呢?據我所知,字典是

字典<字符串,字符串>

,其關鍵是通過級聯樹的父母「:」在同一時間管理重複節點,枚舉他們等等。痛苦從頭開始建立這個算法。

+0

您可以從字符串讀取JSON也是如此。檢查此鏈接https://stackoverflow.com/a/29843542/2298362 –

+0

@PrabodhM感謝您的評論,但它與我的問題無關。我問的是:「有沒有辦法從內存中的json加載ConfigurationBuilder()?」 – mra

+0

對不起,我想我誤解了你的問題。 –

回答

0

在ASPNETCORE 2.0(不知道其它版本),你可以使用config.AddInMemoryCollection

var host = new WebHostBuilder() 
    .ConfigureAppConfiguration((hostingContext, config) => 
    { 
     config.AddInMemoryCollection(new Dictionary<string, string>() 
     { 
      { "MyParentKey:MySubKey", "MyValue" } 
     }); 
    });