2015-11-04 63 views
0

在努力,試圖讓ConfigurationManager.AppSettings [..]工作再次,我已經創建了一個的applicationSettings元素和一個的appSettings元素在單個項目控制檯應用程序中。的App.config - 價值觀<的applicationSettings>失敗,價值觀<appSettings>工作

<applicationSettings> 
<el_testo.Properties.Settings> 
    <setting name="ApplicationSetting" serializeAs="String"> 
    <value>Application Value</value> 
    </setting> 
</el_testo.Properties.Settings> 
</applicationSettings> 
<appSettings> 
<add key="AppSetting" value="App Value"/> 
</appSettings> 

這是我努力檢索這兩個值。

Debug.WriteLine("---> ApplicationSettings Test"); 
Debug.WriteLine(ConfigurationManager.AppSettings["ApplicationSetting"] + ""); 
var applicationSettingsTest = ConfigurationManager.AppSettings["ApplicationSetting"]; 
Debug.WriteLine(applicationSettingsTest); 
Debug.WriteLine("---> AppSettings Test"); 
Debug.WriteLine(ConfigurationManager.AppSettings["AppSetting"]); 
Debug.WriteLine("---> Complete"); 

這是我的結果。

---> ApplicationSettings Test 


---> AppSettings Test 
App Value 
---> Complete 

我可以 「擺平」,並使用的appSettings結構。但是,使用此項目和未來項目的「項目」屬性上的「設置」選項卡會很好。這是我迄今爲止嘗試做的工作。

  • 在這個應用程序中只有一個項目。因此,我不能在一個項目中設置這個值,並試圖在另一個項目中讀取它。 (此外,的appSettings作品)
  • 我覈實,該項目包括集引用System.Configuration和類包括正確的命名空間引用(使用System.Configuration;)
  • 我在仔細檢查拼寫和在ConfigurationManager.AppSettings [「ApplicationSetting」]中設置名稱的情況。
  • 我試過將App.config鏈接到不同的XML架構文件,EnterpriseLibrary.Configuration.xsd和使用Visual Studio中的XML菜單生成的XML架構文件。
  • 我已經擦除了調試和發佈文件夾的內容並重建了項目。
+0

訪問ApplicationSetting如果打開machine.config中,您將看到怎樣的appSettings定義。但是applicationSettings沒有部分定義,所以它不起作用。 –

回答

1

您錯誤地嘗試閱讀ApplicationSetting元素下的appSettings一鍵用下面的語句:

ConfigurationManager.AppSettings["ApplicationSetting"] 

這意味着你正在試圖讓這個值:

<appSettings> 
    <add key="ApplicationSetting" value="xxxx" /> 
</appSetting> 

取而代之;當您使用項目屬性添加應用程序設置時,它會創建一個擴展ApplicationSettingsBase類的設置類,使用您的設置名稱創建屬性,並且還會在app.config文件中添加必要的configSection和默認配置元素。爲什麼不創建和使用這個類,它將給你類型嚴格的訪問你的應用程序設置?

只要到項目/ e_testo屬性/設置和使用範圍應用

添加ApplicationSetting然後,您可以通過

var applicationSettingsTest = Properties.Settings.Default.ApplicationSetting 
+0

謝謝Oguz! – jdana

+0

不客氣。如果它解決了您的問題,您可以將其標記爲答案嗎?謝謝 –