2015-11-04 53 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

不客气。如果它解决了您的问题,您可以将其标记为答案吗?谢谢 –