2017-03-19 45 views
0

我在.net Core 1.1, 上啓動了一些基礎項目,我希望將appsettings.json的某些屬性映射到對象,但我可能無法理解正確名稱約定或相當基本的東西如何將配置對象從appsettings.json正確綁定到用戶對象

Regarding MSDN使用選項和配置對象部分, 它很容易使用它。 我加入的下行appsettings.json

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

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

我添加了自定義的類

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; } 
    } 

我添加下面的代碼到Startup.cs

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 - 價值containes空值在XXXController構造函數。

但在JsonConfigurationProvider好像框架顯示mappet值配置財產

任何想法裏面?

回答

1

ConfigureServices方法改變:

services.Configure<XXXOptions>(Configuration); 

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

葉氏,這很簡單!我對此表示感謝 –

相關問題