【问题标题】:Can't read from app.config using Properties.Settings无法使用 Properties.Settings 从 app.config 读取
【发布时间】:2015-02-04 10:33:20
【问题描述】:

我正在尝试从我的 AppConfig 中读取,但它不起作用。

应用程序配置:

<?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="Console.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
    </sectionGroup>
</configSections>
<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<userSettings>
    <Console.Properties.Settings>
        <setting name="LogFiles" serializeAs="String">
            <value>True</value>
        </setting>
    </Console.Properties.Settings>
</userSettings>
</configuration>

程序.cs:

namespace Console
{
class Console
{
    public static readonly bool LogFiles = Properties.Settings. //Cant find symbol Default
    static void Main(string[] args)
    {
        //Do stuff here
    }
}
}

使用 Properties.Settings 时,我找不到默认符号或 LogFiles 属性。我错过了什么?

【问题讨论】:

  • 您是在尝试使用存储在 App.config 中的应用程序级设置还是用户级设置?
  • @krillezzz app.config 将与可执行文件一起复制。因此,如果单次安装不可能有 2 个或更多用户特定设置。
  • @Jarlax 我现在没有真正关注..我只有一个用户特定级别的值
  • @krillezzz 很抱歉没有 100% 清楚。我的观点是,在app.config 的设计中,您只能拥有应用程序级别的设置,而不是用户级别的设置。

标签: c# properties app-config


【解决方案1】:

实现此目的的惯用方法是改用ConfigurationManager.AppSettings[key]。配置如下:

<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <appSettings>
    <add key="LogFiles" value="True" />
  </appSettings>
</configuration>

应用程序设置的检索将是:

bool logFiles = Convert.ToBoolean(ConfigurationManager.AppSettings["LogFiles"]);

【讨论】:

  • 为什么这样更好?我是这样做的,但我认为这在代码中更简洁
  • 在这个answer 中有设置与app.config 的简短比较。如果要求具有用户特定的设置,则不应在 app.config 中定义它们。
猜你喜欢
  • 2018-12-27
  • 1970-01-01
  • 2014-12-11
  • 2012-10-14
  • 2013-10-07
  • 1970-01-01
  • 2013-01-09
  • 2016-01-11
  • 2023-04-08
相关资源
最近更新 更多