コンソールアプリケーションC#のApp.Configファイル


92


ファイルの名前を書きたいコンソールアプリケーションがあります。

Process.Start("blah.bat");

通常、私は、ファイルの名前を書き込むことによって、Windowsアプリケーションではそのような何かを持っているでしょう'blah.bat'設定でファイルのプロパティ
ただし、ここでは設定ファイルが見つからず、同じ目的でapp.configを追加しました。

ここでapp.configに何を書けばよいのかわかりません。WindowsFormsの場合と同様のことを達成することにつながります

例:Windowsフォーム。Process.Start(Properties.Settings.Default.BatchFile);
どこBatchFileのプロパティの設定ファイル内の文字列です。

回答:


211

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>

10
ConfigurationSettings.AppSettings["blah.bat"]は使用できますが、これは廃止されているという警告が表示されます。ConfigurationManager上記のように使用しようとすると、ConfigurationManagerが現在のコンテキストに存在しないというエラーが表示されます。:-/
user1240679 2012

69
System.Configurationへの参照も追加するようにしてくださいusing。使用しようとしているアセンブリへの参照がある場合にのみ機能が機能します。
xxbbcc

1
後半のコメントが、私のために私のミスは私がのappSettingsからアッパーケーシング「S」を忘れてしまったということだった

文字列ではなく、整数またはブール値を取得するにはどうすればよいですか?
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で構成を保存し、Fetchの値の例を使用できます。
user5705992 2015

1
ランタイムバージョン1.xのサポートを提供します。これは現在廃止されています。使用してくださいSystem.Configuration.ConfigurationManager.AppSettings
wp78de

1
参照にはSystem.Configurationアセンブリが必要です。
Muflix、2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.