2017-03-19 3 views
0

.net Core 1.1、 に関する基本プロジェクトを開始しました。appsettings.jsonのいくつかのプロパティをオブジェクトにマップしたいと思いますが、正しくはわかりません名前のコンベンションかかなり基本的なもの設定オブジェクトをappsettings.jsonからユーザオブジェクトに正しくバインドする方法

Regarding MSDNオプションと設定オブジェクトのセクションを使用して、 は非常に使いやすいです。値containesヌル値 - は私は

public void ConfigureServices(IServiceCollection services) 
     { 
      // Adds services required for using options. 
      services.AddOptions(); 

      // Register the IConfiguration instance which MyOptions binds against. 
      services.Configure<XXXOptions>(Configuration); 

      // Add framework services. 
      services.AddMvc(); 
     } 

public class XXXController : Controller 
    { 
     private readonly XXXOptions _options; 
     public XXXController(IOptions<XXXOptions> optionsAccessor) 
     { 
      _options = optionsAccessor.Value; 
     } 

     public IActionResult Index() 
     { 
      var option1 = _options.X1; 
      return Content($"option1 = {option1.AppCode}, option2 = {option1.AppId}"); 
      return View(); 
     } 
    } 

optionsAccessor.ValueをStartup.csする次のコードを追加して、カスタムクラス

public class XXXOptions 
    { 
     public XXXOptions() 
     { 
     } 
     public X1 X1{ get; set; } 
     public X2 X2{ get; set; } 
    } 

    public class X1 
    { 
     public int AppId { get; set; } 
     public int AppCode { get; set; } 
    } 

    public class X2 
    { 
     public int AppId { get; set; } 
     public int AppCode { get; set; } 
    } 

を添加

{ 
    "Logging": { 
    "IncludeScopes": false, 
    "LogLevel": { 
     "Default": "Warning" 
    } 
    }, 

    "XXXOptions": { 
    "X1": { 
     "AppId": "11", 
     "AppCode": "22" 
    }, 
    "X2": { 
     "AppId": "", 
     "AppCode": "" 
    } 
    } 
} 

appsettings.jsonために次の行を追加しましたXXXControllerコンストラクタで

が、それは任意のアイデア

設定財産の内側JsonConfigurationProviderでフレームワークショーmappet値のように思えますか? ConfigureServices方法変更で

答えて

1

services.Configure<XXXOptions>(Configuration); 

services.Configure<XXXOptions>(Configuration.GetSection("XXXOptions")); 
+0

yeapには、それは簡単でした!このおかげで、ちょっと新しい –

関連する問題