I.はじめに
.NET我々の使用のために構成のWebConfigを取得するための特別な方法の枠組みの中でフレームワークが、.NETコアまたは.NET標準の方法では、直接プロファイル情報を取得するために使用されていない、次の構成情報のために実施されるであろう。
第二に、構成情報を取得実現
ネットコアでは、彼のキャリアの構成情報がJSONファイルがあり、今は(.NET Frameworkおよび.NET標準(ネットコア)フレームが含まれる)すべての項目を計画するキャリア構成としてJSONファイルです。
まず、Nugetて次のパケットを読み込みます:
インストール・パッケージMicrosoft.Extensions.Configuration インストール・パッケージMicrosoft.Extensions.Configuration.Json インストール・パッケージMicrosoft.Extensions.DependencyInjection インストール・パッケージMicrosoft.Extensions.Options インストール・パッケージMicrosoft.Extensions.Options.ConfigurationExtensions
今、私たちは、JSONのコンフィギュレーション・ファイル・フォーマットの内容を使用しています
{ " のconnectionStrings ":{ " CxyOrder ":" サーバー=ノート型コンピュータAQUL6MDE \\ MSSQLSERVERS;データベース= CxyOrder;ユーザID = SA;パスワード= 123456; Trusted_Connection = falseは、 " } " のAppSettings "{ " のSystemName ":" PDF .NETのCORE」、 " 日付 ":" 2017年7月23日 "、 " 著者 ":" PDF " }、 " のserviceURL ":" https://www.baidu.com/getnews " }
次のようにPFTConfiguration.csファイルの作成、コードは次のとおりです。
パブリック クラス PFTConfiguration { /// <要約> /// PFTConfiguration.Configuration.GetConnectionString( "CxyOrder")。/// PFTConfiguration.Configuration [ "のserviceURL"]。/// PFTConfiguration.Configuration [ "のAppSettings:のSystemName"]。/// </要約> パブリック静的 IConfiguration設定{取得します。セットする; } 静的 PFTConfiguration() { 設定= 新しい ConfigurationBuilder() .Add(新しい JsonConfigurationSource {PATH = " appsettings.json "、ReloadOnChange = 真 }) 。 } /// <要約> ///設定情報 /// </要約> /// <PARAM NAME = "パス"> JSONファイルの種類</ param>の /// <typeParam名= "T">リターン・エンティティタイプ</ typeParam> /// <PARAM NAME = "キー"> JSONキーワード</ param>の /// </戻り値> <戻り値> 公共 静的:T GetAppsettings <T>(文字キー、文字列のパス)Tをクラス、新しい新しい() { 試み { IF(string.IsNullOrWhiteSpace(パス)) { スロー新しい新しい例外( " 誤設定プロファイルパスを解析することは空である "); } IF(文字列。IsNullOrWhiteSpace(キー)) {新しいです スロー 例外( " 解析配置错误、配置キーの为の空 "); } VARの設定= 新しい ConfigurationBuilder() .SetBasePath(AppDomain.CurrentDomain.BaseDirectory) .Add(新しい JsonConfigurationSource {PATH =パス、ReloadOnChange = 真 }) .Build(); varのAppConfig = 新しい ServiceCollection() .AddOptions() .Configure <T>(config.GetSection)(キー) .BuildServiceProvider() .GetService <IOptions <T >>() .Valueの。リターンのAppConfig。 } キャッチ(例外EX)を { スロー新しい新しい例外( " 解像度の設定(オブジェクト)の異常 "、EX); } } /// <まとめ> ///設定情報/// </要約> /// <PARAM NAME = "キー" > JSONのキーワード</ param>の/// <PARAM NAME = "パス"> JSONファイルの種類</ param>の/// </戻り値> <返し> 公共の静的な文字列GetAppsettingsを(文字キー、文字列のパス) { 試み { IF(文字列。IsNullOrWhiteSpace(パス)) { スロー新しいです 例外(「誤って設定プロファイルのパスを解析することは空です」); } 場合 (string.IsNullOrWhiteSpace)(キー) { スロー新しい( "例外を解析配置错误、配置鍵为空 ")。 } VARの設定= 新しい ConfigurationBuilder() .SetBasePath(AppDomain.CurrentDomain.BaseDirectory) .Add(新しい JsonConfigurationSource {PATH =パス、ReloadOnChange = 真、オプション= 偽 }) .Build(); VARのAppConfig = config.GetSection(キー).Valueの。 リターンのAppConfig。 } キャッチ(例外例) { スロー新しい新しい例外( " 異常な解像度の設定(文字列) "、EX); } } } }
これは3つの取得方法を定義します
1、PFTConfiguration.Configuration [「のAppSettings:のSystemName」]デフォルトのファイルパスappsettings.json、及びノードによって取得されたコンフィギュレーション.NETフレームワークを得るための方法に幾分類似の様式
図2に示すように、PFTConfiguration.GetAppsettings <T>(文字列キー、文字列のパス)、彼は指定された設定ファイル、指定されたノードを得ることで、ノードは、Tの形でオブジェクトの内容を返します
3、PFTConfiguration.GetAppsettings(文字列キー、文字列のパス)、彼は、指定された設定ファイルを取得するノードを指定することで、ノードは、文字列の内容を返します