.NET Core中的整個配置方法非常靈活,但一開始並不明顯。這也可能是最簡單的用一個例子來解釋:
假設一個appsettings.json文件看起來像這樣:
{
"option1": "value1_from_json",
"ConnectionStrings": {
"DefaultConnection": "Server=,\\SQL2016DEV;Database=DBName;Trusted_Connection=True"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
從appsettings.json文件,你首先需要建立獲取數據在Startup.cs一個ConfigurationBuilder
如下:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
if (env.IsDevelopment())
{
// For more details on using the user secret store see https://go.microsoft.com/fwlink/?LinkID=532709
builder.AddUserSecrets<Startup>();
}
builder.AddEnvironmentVariables();
Configuration = builder.Build();
然後你可以直接訪問配置,但它的整潔創建選項班浩ld這些數據,然後你可以注入你的控制器或其他類。每個選項類代表appsettings.json文件的不同部分。
在此代碼中,連接字符串被加載到ConnectionStringSettings
類中,另一個選項被加載到MyOptions
類中。 .GetSection
方法獲取文件的一個特定部分appsettings.json文件。再次,這是在Startup.cs中:
public void ConfigureServices(IServiceCollection services)
{
... other code
// Register the IConfiguration instance which MyOptions binds against.
services.AddOptions();
// Load the data from the 'root' of the json file
services.Configure<MyOptions>(Configuration);
// load the data from the 'ConnectionStrings' section of the json file
var connStringSettings = Configuration.GetSection("ConnectionStrings");
services.Configure<ConnectionStringSettings>(connStringSettings);
這些是設置數據加載到的類。請注意屬性名稱如何配對與設置在JSON文件:
public class MyOptions
{
public string Option1 { get; set; }
}
public class ConnectionStringSettings
{
public string DefaultConnection { get; set; }
}
最後,您可以通過注入OptionsAccessor到控制器訪問這些設置如下:
private readonly MyOptions _myOptions;
public HomeController(IOptions<MyOptions > optionsAccessor)
{
_myOptions = optionsAccessor.Value;
var valueOfOpt1 = _myOptions.Option1;
}
一般來說,整個配置設置過程在Core中非常不同。 Thomas Ardal在他的網站上有很好的解釋:http://thomasardal.com/appsettings-in-asp-net-core/
還有關於Configuration in ASP.NET Core in the Microsoft documentation的更詳細的解釋。
請注意,沒有MVC6,只有MVC1- 5。它現在被稱爲ASP.NET Core 1.x,從版本1開始講清楚它不是MVC5的後繼**,而是一個完全重寫,它與MVC5 **和以前版本的ASP不兼容。 NET MVC – Tseng