2016-01-05 68 views
0

我對ASP.NET vNext相當陌生,而且我正在爲項目中依賴項的配置而苦苦掙扎。 我已經在project.json的dnx451部分中定義了一些依賴關係。他們通常由老式app.config文件通過ConfigurationManager中加載自己的設置,如ASP.NET 5(vNext)和配置dnx451依賴關係

<appSettings> 
    <add key="myConfigKey" value="myConfigValue" /> 
</appSettings> 

string value = System.Configuration.ConfigurationManager.AppSettings["myConfigKey"]; 

我明白瞭如何配置基本ASP.NET 5申請喜歡這裏描述:ASP.NET 5 (vNext) - Configuration

所以我的問題是:有沒有辦法讓我的依賴程序集知道他們的配置值?

問候

+0

查看文檔的[place](https://docs.asp.net/en/latest/fundamentals/configuration.html#options-config-objects)。這並不完全清楚你的意思是「讓我的相關程序集知道它們的配置值的方法」。你是否決定在類庫中的應用程序,它需要訪問'appconfig.json'的某個部分?你有什麼界面?你能將全局配置的部分轉發到類庫嗎? – Oleg

+0

ASP.NET 5文檔[建議您只在應用程序的啓動類中實例化配置實例](https://docs.asp.net/en/latest/fundamentals/configuration.html#getting-and-setting你可以使用新的ConfigurationBuilder()。AddJsonFile(「appsettings.json」)。Build()。GetSection(「PathToMyConfigKey」)' – Oleg

+0

感謝您的回覆。實際上,我對這些類庫沒有影響,並且按照上述方式加載它們的舊配置文件。它們被構建爲可以直接訪問app.config並從那裏獲取appSettings。我只需要知道是否有加載這些設置的方法。 –

回答

0

實際的答案就在這裏給出:web.config in ASP.NET 5 MVC 6

就像奧列格在上評論說。

我可以在我的DLL旁邊放置一個app.config,並可以像這樣配置我的第三方庫。

感謝您的答案。

0

你應該通過構造函數或財產注入值傳遞到組件。像AutoFac這樣的DI容器可以幫助您輕鬆完成此操作,但是您可以在不使用窮人的DI的情況下執行此操作。

public class SomeClassInAssembly 
{ 
    private readonly string _configValue; 

    public SomeClassInAssembly(string configValue) 
    { 
     _configValue = configValue; 
    } 

    // Some method that now has access to your variable 

} 

然後在調用應用程序剛剛從通常的方式配置檢索和傳遞在

+0

感謝您的回答。那麼,因爲我沒有權限訪問類庫,並且它們以上述方式直接從app.config加載它們的設置,所以我無法將配置注入到類中。 –

0

恐怕這直接消耗ConfigurationManager庫不會ASP.NET 5.下工作,您需要更新該庫或使它們更新以將配置部分抽象出來,以便可以通過編程方式傳遞配置。