控制台应用程序C#中的App.Config文件


92


我有一个控制台应用程序,我想在其中编写文件名。

Process.Start("blah.bat");

通常情况下,我会通过写文件的名称在Windows应用程序类似的东西'blah.bat'设置文件属性
但是,在这里我找不到任何设置文件,并且出于相同的目的添加了app.config

我不确定在app.config中写什么,这将导致我实现与Windows Forms类似的事情。

例如:在Windows窗体中。Process.Start(Properties.Settings.Default.BatchFile);
其中“ BatchFile属性”中的设置文件中的字符串。

Answers:


212

您可以System.Configuration在项目中添加对的引用,然后:

using System.Configuration;

然后

string sValue = ConfigurationManager.AppSettings["BatchFile"];

带有这样的app.config文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <appSettings>
       <add key="BatchFile" value="blah.bat" />
   </appSettings>
</configuration>

11
ConfigurationSettings.AppSettings["blah.bat"]是可用的,但警告它已过时。当我尝试ConfigurationManager如上所述使用时,出现错误,指出当前上下文中不存在ConfigurationManager。:-/
user1240679'4

69
确保您还添加了对System.Configuration的引用- using仅当您引用要使用的程序集时,durective才起作用。
xxbbcc 2012年

1
最新评论,但对我而言,我的错误是我忘记了appSettings中的

我如何获得整数或布尔值,即不是字符串?
Zapnologica

1
@Zapnologica据AppSettings认为,一切都是字符串。如果您有包含数字的设置字符串,则必须通过调用int.TryParse()等方法解析它们。您想要处理字符串以外的其他任何值的情况也一样。
xxbbcc

18

对于.NET Core,请从NuGet管理器中添加System.Configuration.ConfigurationManager。
并从App.config中读取appSetting

<appSettings>
  <add key="appSetting1" value="1000" />
</appSettings>

从NuGet Manager添加System.Configuration.ConfigurationManager

在此处输入图片说明

ConfigurationManager.AppSettings.Get("appSetting1")

2

用这个

System.Configuration.ConfigurationSettings.AppSettings.Get("Keyname")

您可以在appsettion上保存您的配置,并为获取值使用示例。
user5705992

1
提供对运行时版本1.x的支持。这是过时的了。请使用System.Configuration.ConfigurationManager.AppSettings
wp78de

1
引用中需要System.Configuration程序集。
Muflix '18 -10-25
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.