
コンソールアプリで設定ファイルを使う方法【C#, json, config】
.Netのコンソールアプリで設定ファイルを利用したい人の向けに記事になります。
コンソールアプリでは、予め設定ファイルというものが用意されていません。
設定ファイルを利用するためには自分でファイルを用意し、
読み取るための仕組みを自分のアプリに入れる必要があります。
今回は、App.configから読み取る方法とappsettings.jsonを利用する二つの方法を紹介します。
早速みていきましょう。
目次
.configファイルを読み込めるようにする方法
.net frameworkから存在する.configを利用した設定値のファイル読み込みです。
今回はApp.configという名前で設定値を読み取ります。
- App.configの用意
- プロジェクト参照の追加(Nuget)
- App.configの読み込みコードとファイル参照
App.configの用意

プロジェクト直下に「App.config」というファイルを用意し次のように記述します。
<add key=”○○” value=”××” />を増やすことで読み込む設定値を増やすことができます。
プロジェクト参照の追加(Nuget)

「System.Configuration.ConfigurationManager」をNuGet経由で インストールしましょう。
NuGetの使い方がわからない方はこちらの記事を参照ください。
App.configの読み込みコードとファイル参照
NugetでインストールしたConfigurationManagerを用いてSetting1を読み込んでみましょう。
これでApp.configの読み込みは以上です。
appsettings.jsonを読み込めるようにする方法
次にjsonファイルを利用した設定値の利用方法の紹介です。
今回は「appsettings.json」を読み込んでみます。
appsettings.jsonの用意
ファイル作成
appsettings.jsonをプロジェクト直下に作成し、次のように記述します。
後述しますが、オブジェクトにマッピングするためにMyConfigという名前のデータを用意します。
「出力ディレクトリに常にコピーする」設定追加

作成したappsettings.jsonのプロパティを開き、「出力ディレクトリにコピー」の項目を「常にコピーする」に変更します。
この設定をしておかないと、ビルドした時にappsettings.jsonファイルが抜け落ち、
設定値が読み取れなくなってしまいます。
プロジェクト参照の追加(Nuget)

- Microsoft.Extensions.Configuration.Json
- Microsoft.Extensions.Hosting
- Microsoft.Extensions.Options
- Microsoft.Extensions.Options.DataAnnotations
をNuGetでインストールします。
読み込みコード
App.configとは異なり、オブジェクトへのマッピングまで行います。
先程、jsonに記載した、「MyConfig」をコード上でも記述します。
なお、今回は仮にappsettings.jsonとしていますが、
「appsettings」は自分好みに変えられます。
これはApp.confgとは違うところです。
どちらを使うか
所属チームや組織にこだわりやルールがあればそちらに従い、
無ければ、使いやすいほうを使用すれば良いと思います。
個人的なおすすめは、オブジェクトへのマップまでがスムーズゆえ、jsonにはなります。
しかし、結局は使用者やチームの使いやすさが一番ですね。