2016-06-15 115 views
0

我有在Visual Studio 2015的設置,設計器生成下面的示例內容:讀取和寫入設置C#編程

<configuration> 
    <applicationSettings> 
    <Test.Properties.Settings> 
     <setting name="LogFileFolder" serializeAs="String"> 
     <value>logs</value> 
     </setting> 
     <setting name="sPluginsFolder" serializeAs="String"> 
     <value>plugins</value> 
     </setting> 
     <setting name="sLangBaseName" serializeAs="String"> 
     <value>Test.Resources.Language.Test</value> 
     </setting> 
     <setting name="ConfirmationExit" serializeAs="String"> 
     <value>True</value> 
     </setting> 
    </Test.Properties.Settings> 
    </applicationSettings> 
</configuration> 

現在我想訪問,例如,變量「ConfirmationExit」在我的代碼中。首先,我嘗試了Properties.Settings.Default這很好,但我想檢索更通用的配置密鑰,並提供一個可供任何其他.NET程序使用的ConfigurationService

我試着玩ConfigurationManager,但我沒有得到不同的設置/屬性的值。我總是得到null如果我想是這樣的:

string test = ConfigurationManager.AppSettings["ConfirmationExit"]; 

我如何通過編程讀取和寫入與使用設置 - Designer的app.config文件中定義的屬性/設置。 THX對於任何幫助;)

UPDATE:

也許我不得不提一下,有作爲XML元素(我認爲這是由設計師或其他soemthing產生的?!)一個namspace:

<Test.Properties.Settings> 

<applicationSettings> 

裏面也請提醒: 這是一個項目的結構是這樣的:

1. Project_Common 

2. Project_Main 

    |-- Project_Common 

3. Project_Plugin1 

    |-- Project_Common 

4. Project_Plugin2 

    |-- Project_Common 

... 

在Project_Common中應該有一個ConfigurationService可以檢索所有應用程序的所有屬性。也許構造函數必須有一個參數來注入設置或其他東西。

+0

這是Web應用程序還是桌面應用程序? – Win

+0

這是一個完全用.NET編寫的桌面應用程序。 –

+0

查看ConfigurationManager.AppSettings的結果。我的猜測是你正在閱讀另一個app.config意外。請參閱:http://stackoverflow.com/questions/4280970/configurationmanager-appsettings-getting-null – Dudemanword

回答

0

讀: Settings.Default {} propertyName的 所以你的情況,例如 Settings.Default.ConfirmationExit 讀取ConfirmationExit-價值

進行設置: Settings.Default.ConfirmationExit = false

寫: Se ttings.Default.Save();

+0

同樣在這裏。在@Astx的回答中看到我的評論 –