Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9312

Microsoft.Extensions.Configuration を使って、INI ファイルに書いた設定を読み込む

$
0
0

Microsoft.Extensions.Configuration を使って、INI ファイルに書いた設定を読み込む

exe.config はずっと微妙だなあと思っていたのですが、Microsoft 謹製の INI ファイルから設定を読む手段が提供されたので、それを使ってみる. 例として以下の INI ファイルを読むコードを作成する. 書いたコードは GitHubにも上げてある.

config.ini
[ConnectionStrings]Database=xxx[AppSettings]UserName=fooPassword=barRetryCount=3

Console App (.NET Core) プロジェクトを作成する. TargetFramework が netcoreapp3.1 (.NET Core 3.1) で作成される. 要求は .NET Standard 2.0 なので .NET Framework 4.6.1 や、.NET Core 2.0 でも動くはず.

次に Microsoft.Extensions.Configuration.IniInstall-Package Microsoft.Extensions.Configuration.Binderを nuget インストールする. これを書いている時点では 3.1.3 がインストールされる.

Install-PackageMicrosoft.Extensions.Configuration.IniInstall-PackageMicrosoft.Extensions.Configuration.Binder

そして、セクション毎に情報を詰めるクラスを書いていく.

ConnectionStringsConfig.cs
namespaceConsoleApp1{publicclassConnectionStringsConfig{publicstringDatabase{get;set;}}}
AppSettingsConfig.cs
namespaceConsoleApp1{publicclassAppSettingsConfig{publicstringUserName{get;set;}publicstringPassword{get;set;}publicintRetryCount{get;set;}}}

最後にそれらセクション毎のクラスをまとめ上げるクラスと、INI ファイルから設定を読み込むメソッドを書いて完成.

AppConfig.cs
usingMicrosoft.Extensions.Configuration;namespaceConsoleApp1{publicclassAppConfig{staticAppConfigInstance;publicConnectionStringsConfigConnectionStrings{get;set;}publicAppSettingsConfigAppSettings{get;set;}publicAppConfig(){}publicstaticAppConfigGet(){if(Instance!=null)returnInstance;Instance=newConfigurationBuilder().AddIniFile(".\\config.ini").Build().Get<AppConfig>();returnInstance;}}}

以下のように簡単に設定内容にアクセスできる.

Program.cs
usingSystem;namespaceConsoleApp1{classProgram{staticreadonlyAppConfigConfig=AppConfig.Get();staticvoidMain(string[]args){Console.WriteLine(Config.ConnectionStrings.Database);Console.WriteLine(Config.AppSettings.UserName);Console.WriteLine(Config.AppSettings.RetryCount);Console.Read();}}}

Viewing all articles
Browse latest Browse all 9312

Latest Images

Trending Articles