2015-12-14 12 views
7

Theo http://blog.jsinh.in/asp-net-5-configuration-microsoft-framework-configurationmodel/, mọi thứ đã thay đổi. Tuy nhiên, tôi không thể hiểu từ tài liệu đó cách đọc các phím appSettings. Có một ví dụ về đọc từ các tập tin ini mặc dù.Cách đọc mã khóa ứng dụng

Làm cách nào để tránh sử dụng System.Configuration.ConfigurationManager cũ để đọc các giá trị khóa AppSettings từ web.config?

Trả lời

0

Tôi không chắc chắn những gì xảy ra với System.ConfigurationManager.AppSettings [MSDN] vì nó vẫn hoạt động trong 4,5 & 4,6

Nhưng tôi nghĩ rằng những gì bạn đang hỏi là System.Configuration.AppSettingsReader.GetValue() [MSDN]

+0

Trong phần 'Tham khảo', tôi đã thêm' System.Configuration (1.0.0) 'đến DNX 4.5.1. Tuy nhiên, tôi vẫn nhận được "Loại hoặc không gian tên 'Cấu hình' không tồn tại trong không gian tên 'Hệ thống' (bạn đang thiếu một hội đồng hoặc tham chiếu?)" –

7

Thêm một tập tin json đến gốc của dự án của bạn dir: config.json

{ 
    "AppSettings": { 
     "TestKey" : "TestValue" 
    } 
} 

Tạo một class mới cho cấu hình deserialization:

public class AppSettings 
{ 
    public string TestKey { get; set; } 
} 

Trong Startup.cs:

public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv) 
{ 
     // Setup configuration sources. 
     var builder = new ConfigurationBuilder() 
       .SetBasePath(appEnv.ApplicationBasePath) 
       .AddJsonFile("config.json") 
       .AddJsonFile($"config.{env.EnvironmentName}.json", true) 
       .AddEnvironmentVariables(); 
     Configuration = builder.Build(); 
} 

public IConfigurationRoot Configuration { get; set; } 

public void ConfigureServices(IServiceCollection services) 
{ 
     var builder = services.AddMvc(); 

     services.Configure<AppSettings>(Configuration.GetSection("AppSettings")); 
} 

Nhận các tùy chọn trong controller của bạn:

public HomeController(IOptions<AppSettings> settings) 
{ 
    var value = settings.Value.TestKey; 
} 
0

Bạn có thể nhận giá trị sử dụng [ "thiết-key"] cú pháp:

IConfiguration _configuration; 
... 
var setting = _configuration["SomeKey"]; 

Hoặc bạn có thể phân tích cú pháp phần cấu hình cho một số đối tượng tùy chỉnh như sau:

IConfiguration configuration; 
... 
var myCustomObject = configuration.GetSection("SomeSection").Get<MyCustomObject>(); 

chú ý Pay - trong cách tiếp cận thứ hai bạn nên tham khảo các gói MS Nugget sau:

  1. Microsoft.Extensions.Configuration
  2. Microsoft.Extensions.Configuration .Builder
  3. Microsoft.Extensions.Configuration.Json
Các vấn đề liên quan