.NET標準(.NETコア)の構成情報へのアクセスを得ます

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(文字列キー、文字列のパス)、彼は、指定された設定ファイルを取得するノードを指定することで、ノードは、文字列の内容を返します

おすすめ

転載: www.cnblogs.com/snailblog/p/11565907.html