ホーム
おまかせ表示
ログイン
設定
MonoBookについて
免責事項
MonoBook
検索
「
.NET Core/System.Configuration名前空間がない
」を編集中
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
NuGetサーバーを[[Linux]]で動かすべく[[ASP .NET Core]]に[[移植]]しようとしたところ、[[.NET Core]]にSystem.Configuration名前空間がないことが判明した。[[ググった]]ところ[[.NET Core]]では[[NuGet]]にある「Microsoft.Extensions.Configuration」を使うらしい。 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration 設定ファイルの形式は古いSystem.Configurationでは[[XML]](app.configなど)だけだったが、新しいMicrosoft.Extensions.Configurationでは[[INI]]、[[XML]]、[[JSON]]から選べる。また、[[コマンドライン引数]]や[[環境変数]]から設定する手段も用意されている。 各設定値は文字列をキーとする[[POCO]](単純なプロパティだけのクラス)にバインディングされる。 == 例:JSON + コンソールアプリ == ; 利用するNuGetパッケージ * Microsoft.Extensions.Configuration * Microsoft.Extensions.Configuration.Json ;appsettings.json <source lang="javascript" > { "option1": "value1_from_json", "option2": 2, "subsection": { "suboption1": "subvalue1_from_json" }, "wizards": [ { "Name": "Gandalf", "Age": "1000" }, { "Name": "Harry", "Age": "17" } ] } </source> ; Program.cs <source lang="csharp"> using Microsoft.Extensions.Configuration; using System; using System.IO; // Add NuGet <package id="Microsoft.Extensions.Configuration" and // <package id="Microsoft.Extensions.Configuration.Json" // .NET Framework 4.x use the following path: //.SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), @"..\..")) public class Program { public static IConfigurationRoot Configuration { get; set; } public static void Main(string[] args = null) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); Configuration = builder.Build(); Console.WriteLine($"option1 = {Configuration["option1"]}"); Console.WriteLine($"option2 = {Configuration["option2"]}"); Console.WriteLine($"suboption1 = {Configuration["subsection:suboption1"]}"); Console.WriteLine(); Console.WriteLine("Wizards:"); Console.Write($"{Configuration["wizards:0:Name"]}, "); Console.WriteLine($"age {Configuration["wizards:0:Age"]}"); Console.Write($"{Configuration["wizards:1:Name"]}, "); Console.WriteLine($"age {Configuration["wizards:1:Age"]}"); } } </source> 階層構造は「:(コロン)」区切りで表現する。 Console.WriteLine($"option1 = {Configuration["subsection:suboption1"]}"); 配列をは階層構造と同様にコロン区切りを利用し、変数名の部分にインデックス番号(0からスタート)を指定する。 Console.Write($"{Configuration["wizards:0:Name"]}, "); == 関連項目 == * [[.NET Core]] * [[.NET Core/macOSにインストールする]] [[category: .NET Core]]
編集内容の要約:
MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MonoBook:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の確認用の質問に回答してください (
詳細
):
1たす1は?(全角で入力してください)
キャンセル
編集の仕方
(新しいウィンドウで開きます)