【问题标题】:Read settings from App.Config using C# [closed]使用 C# 从 App.Config 读取设置 [关闭]
【发布时间】:2014-04-15 01:36:38
【问题描述】:

这是我的应用配置文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>

<appSettings>
    <add key="Testit" value="7777"/>
</appSettings>

...

</configuration>

我在 C# 中使用控制台应用程序

Console.WriteLine(ConfigurationManager.AppSettings["Testit"]);

我收到此错误:

  • ConfigurationErrorsException 未处理我知道我可以在那里放 try catch 但这不是必需的

如果我在 app.config 周围移动 appSettings 标记,它会抱怨放置不正确,因此现在放置正确。我不知道还有什么可以尝试从 app.config 显示该值。

也许这将有助于我的项目是使用 C# 的 .NET Framework 4.0,它是一个带有 App.Config 的控制台应用程序

这是内部异常:

{"每个配置文件只允许一个元素,如果存在必须是根元素的第一个子元素。(C:\...\Program.vshost.exe.Config 第 8 行)"}

而我只有一个 configSection!!!

更新:

我需要将 appSettings 包含在另一个标签中吗??????

【问题讨论】:

  • 请发布整个异常。仅仅告诉我们异常的类型(ConfigurationErrorsException)是不够的。
  • 发布异常的堆栈跟踪。

标签: c# windows visual-studio-2012 console-application app-config


【解决方案1】:

您需要使用 ConfigurationManager 类而不是 ConfigurationSettings 类

【讨论】:

  • Visual Studio 不能说期待吗?它必须是这样的
  • 抱歉忽略这个?建议.. 它是有效的 XML。
【解决方案2】:

我试过了,效果很好。

Console.WriteLine(System.Configuration.ConfigurationSettings.AppSettings["Testit"].ToString());

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

【讨论】:

  • 所以你认为它也适用于他的系统??
  • 我又失败了。也许我缺少使用 System.Configuration 的 Using 语句;我还需要其他吗?你的方法也说它已经过时了。
【解决方案3】:

appSettings 很可能稍后会在您的 app.config 中再次定义

【讨论】:

  • 只定义一次。事实上,我的 app.cofig 中的所有标签都定义了一次。
【解决方案4】:

哦哇找到了解决方案,我想这一定是微软的逻辑:)

所以我在App.Config文件中切换了appSettings的顺序:

<appSetting>
...
</appSetting>
<configSection>
...
</configSection>

现在是

<configSection>
...
</configSection>
<appSetting>
...
</appSetting>

有效。

【讨论】:

    猜你喜欢
    • 2013-01-09
    • 2011-05-12
    • 1970-01-01
    • 2014-10-11
    • 2020-06-01
    • 2010-10-26
    相关资源
    最近更新 更多