【问题标题】:I can't get data from my App.config我无法从我的 App.config 获取数据
【发布时间】:2018-08-09 08:31:26
【问题描述】:

我正在尝试从我的 App.config 中获取数据并搜索我发现了多达 4 种获取该数​​据的方法,但基本上你应该使用

ConfigurationManager.AppSettings["NameKey/NameSetting"];

我的 App.config 代码是

   <?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="DXThemeManager" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="InterfazPrueba1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <userSettings>
        <DXThemeManager>
            <setting name="ApplicationThemeName" serializeAs="String">
              <value>Office2016White</value>
            </setting>
        </DXThemeManager>
    </userSettings>
    <applicationSettings>
        <InterfazPrueba1.Properties.Settings>
            <setting name="HostBD" serializeAs="String">
                <value>LOCALHOST</value>
            </setting>
            <setting name="NombreBD" serializeAs="String">
                <value>Pruebas1</value>
            </setting>
            <setting name="ServerBD" serializeAs="String">
                <value>DESKTOP-O037RKH</value>
            </setting>
            <setting name="InstanceBD" serializeAs="String">
                <value />
            </setting>
            <setting name="UsuarioBD" serializeAs="String">
                <value>sa</value>
            </setting>
            <setting name="PassBD" serializeAs="String">
                <value>123</value>
            </setting>
        </InterfazPrueba1.Properties.Settings>
    </applicationSettings>
</configuration>

而我班上的代码是:

 private void datosConexion()
    {
        server = ConfigurationManager.AppSettings["ServerBD"];
        user = ConfigurationManager.AppSettings["UsuarioBD"];
        pass = ConfigurationManager.AppSettings["PasswordBD"];
        host = ConfigurationManager.AppSettings["HostBD"];
        db= ConfigurationManager.AppSettings["NombreBD"];
        instance = ConfigurationManager.AppSettings["InstanceBD"];
        Console.WriteLine("Datos:"+server + user + pass + host + db + instance);
    }

所有变量都没有。

我已经尝试了所有我见过的方法并将值更改为键,但我只能检索数据...... 知道什么是错的或我做错了什么吗?

感谢您给予我的所有支持。

【问题讨论】:

  • applicationSettings 中的值可以通过生成的InterfazPrueba1.Properties.Settings 类的Default 实例访问器属性访问。
  • 所以你可能根本不想使用 ConfigurationManager。

标签: c# .net wpf visual-studio


【解决方案1】:

ConfigurationManager.AppSettings["NameSetting"] 检索在 App.config 中定义的设置,如下所示:

<configuration>
   <configSections>
      ...
   </configSections>
   <userSettings>
      ...
   </userSettings>
    <appSettings>
         <add key="NameSetting" value="123" />
    </appSettings>
</configuration>

如果您在 Project->Properties->Settings 下添加项目特定设置,您可以通过为您生成的类访问这些设置:

string setting = InterfazPrueba1.Properties.Settings.Default.HostBD;

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-15
  • 2021-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多