【问题标题】:Read settings from app.config using ConfigurationManager使用 ConfigurationManager 从 app.config 读取设置
【发布时间】:2013-01-09 21:28:28
【问题描述】:

我创建了一个设置类,我在其中添加了一些参数,如下面的app.config 所示。

我想访问班级内的connectionStringsusersettings,但我的尝试没有成功。

例如,我已经尝试过:

ConfigurationManager.ConnectionStrings['Alerter.AlerterSettings.ConnectionString']

但它不起作用。

这里是app.config

<connectionStrings>
    <add name="Alerter.AlerterSettings.ConnectionString"     connectionString="DefaultEndpointsProtocol=https;sometext" />
</connectionStrings>
<userSettings>
    <Alerter.AlerterSettings>
        <setting name="TableName" serializeAs="String">
            <value>table5</value>
        </setting>
        <setting name="EmailUser" serializeAs="String">
            <value>user</value>
        </setting>
        <setting name="EmailPass" serializeAs="String">
            <value>pass</value>
        </setting>
    </Alerter.AlerterSettings>
</userSettings>

【问题讨论】:

  • 那里有实际 SQL 连接字符串吗?
  • @MUG4N - 他们为什么要 OP 创建一个 custom 配置部分?
  • @Oded:connectionStrings 部分不必保存 SQL 连接字符串。那里的值没有验证。人们按照惯例在此处存储 SQL 连接字符串 - 该部分的文档除了示例代码之外没有提及 SQL 或数据库。

标签: c# settings config


【解决方案1】:

不要使用' - 这是C#中的字符分隔符,而不是字符串分隔符:

ConfigurationManager.ConnectionStrings["Alerter.AlerterSettings.ConnectionString"]

您还需要访问返回值的ConnectionString 属性:

string theConnectionString = 
            ConfigurationManager.ConnectionStrings["whatever"].ConnectionString;

命名注意事项:

Alerter.AlerterSettings.ConnectionString 相当冗长 - 在我看来,它的可读性不是很高,而且配置选项不需要这 - 特别是在 connectionStrings 部分中。 AlerterSettings 在我看来更合适。

【讨论】:

  • 但 ConfigurationManager.ConnectionStrings["Alerter.AlerterSettings.ConnectionString"].ConnectionString 导致空引用异常
  • @user1709794 - 你确定你在配置文件中有这个值吗?就是这样吗?该错误表明您可能将其放在错误的位置(不同的.config 文件?)。
  • 是的,原来它访问了另一个项目的 app.config,我该如何解决?
  • @user1709794 - 这是一个类库吗?如果是这样,那将是正确的 - 它应该访问它使用它的应用程序的配置。见:stackoverflow.com/questions/5674971/…
  • 是的,它是一个类库,但问题是我在两个应用程序中使用它,所以我试图通过创建一个 .settings 类将设置放入类库中,即 .settings类自动创建了一个 app.config
猜你喜欢
  • 2016-01-07
  • 2011-05-12
  • 2011-08-02
  • 1970-01-01
  • 2011-02-17
  • 2010-10-09
  • 2012-07-10
  • 2021-06-14
相关资源
最近更新 更多