ConfigurationManager.AppSettings [key]始终为null

时间:2010-04-17 22:48:56

标签: c#

我正在尝试从app.config中的appSetting部分获取键“sUser”的值

这是我的class.cs上的代码

string sUsr = ConfigurationManager.AppSettings.Get["sUser"];

但总是空的。

我尝试使用此代码(我从MSDN获取):

// Get the configuration file.
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

// Get the appSettings section.
AppSettingsSection appSettings = (AppSettingsSection)config.GetSection("appSettings");

// Get the auxiliary file name.
Console.WriteLine("Auxiliary file: {0}", config.AppSettings.File);

但它显示文件为空

此外,我正在使用stting控制台来编写这些属性,如果我使用

获取应用程序,它会起作用
string sUsr = WIW.Business.Properties.Settings.Default.sUser;

但是我将在网站和网站的web.config中使用该类作为参考我无法配置这些设置

4 个答案:

答案 0 :(得分:1)

在App.config中,appSettings部分应如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="sUser" value="Test"/>
  </appSettings>
</configuration>

答案 1 :(得分:0)

这是我的app.config,如果我尝试从appSettins部分获取键值我总是得到null,但如果我试图从applicationsection获取它们没问题,那就是我需要把那个应用程序部分放在一个网站,但在网站上,我可以把applicationSettings

<configuration>
      <appSettings>
        <add key="sUser" value="userbancolombia"> 
        <add key="sPassword" value="8909039388"> 
      <appSettings>

      <configSections>
            <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
                <section name="WIW.Business.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
            </sectionGroup>
        </configSections>

      <system.serviceModel>
            <bindings />
            <client />
        </system.serviceModel>



      <applicationSettings>
        <WIW.Business.Properties.Settings>
          <setting name="WIW_Business_WsCCMain_ConsultaNuips" serializeAs="String">
            <value>http://coomeva1/AsisaWS_2008/ConsultaNuips.asmx</value>
          </setting>
          <setting name="WIW_Business_WsCCAux_ConsultaNuips" serializeAs="String">
            <value>http://coomeva1/AsisaWS_2008_Sec/ConsultaNuips.asmx</value>
          </setting>
          <setting name="WIW_Business_WsCEMain_ConsultaCedulaExtranjeria"
            serializeAs="String">
            <value>http://coomeva1/AsisaWS_2008/ConsultaCedulaExtranjeria.asmx</value>
          </setting>
          <setting name="WIW_Business_WsCEAux_ConsultaCedulaExtranjeria"
            serializeAs="String">
            <value>http://coomeva1/AsisaWS_2008_Sec/ConsultaCedulaExtranjeria.asmx</value>
          </setting>
          <setting name="sUser" serializeAs="String">
            <value>userbancolombia</value>
          </setting>
          <setting name="sPassword" serializeAs="String">
            <value>8909039388</value>
          </setting>
        </WIW.Business.Properties.Settings>
      </applicationSettings>
    </configuration>

答案 2 :(得分:0)

使用Properties.Settings.Default.{your_setting_key}来访问值

I.E

Properties.Settings.Default.sPassword return 8909039388

所有这些都包含在属性类中。

答案 3 :(得分:0)

我遇到了同样的问题。我正在调用另一个项目(在同一个解决方案中)并且期待appSettings存在。

为了使其工作,我在调用目标应用程序的应用程序中添加了以下行。

  <appSettings>
        <add key="sUser" value="Test"/>
  </appSettings>

之后它对我有用。试试这个。它也可能对你有所帮助