配置檔案讀取
1. 新建FirstController控制器
在appsettings檔案內容替換成以下程式碼
{ "Position": { "Title": "EditTool For human", "Name": "Joe Smith" },//json物件 "MyKey": "My appsettings.json Value", "StudentList": [ {"sName": "Jack"}, {"sName":"John"} ],//json陣列 "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" }//json物件巢狀 }, "AllowedHosts": "*" }
配置檔案讀取
在Fristcontroller新增Index方法,複製以下內容
public IConfiguration Configuration { get; } //建構函式注入 configuration public FirstController(IConfiguration configuration) { Configuration = configuration; } public IActionResult Index() { //配置檔案的讀取 ViewBag.Title = Configuration["Position:Title"];//json物件 ViewBag.MyKey = Configuration["MyKey"]; ViewBag.sName1 = Configuration["StudentList:0:sName"];//json陣列 ViewBag.sName2 = Configuration["StudentList:1:sName"]; ViewBag.Default = Configuration["Logging:LogLevel:Default"];//json巢狀物件 return View(); }
新增index檢視,複製以下內容
@* For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 *@ @{ } <p> ViewBag.Title 的值: @ViewBag.Title</p> <p> ViewBag.MyKey的值: @ViewBag.MyKey</p> <p> ViewBag.sName1的值: @ViewBag.sName1</p> <p> ViewBag.sName2的值: @ViewBag.sName2</p> <p> ViewBag.Default的值: @ViewBag.Default</p>
執行測試效果
Startup 類
ASP.NET Core 應用使用 Startup
類,按照約定命名為 Startup
。 Startup
類:
- 可選擇性地包括 ConfigureServices 方法以配置應用的服務。 服務是一個提供應用功能的可重用元件。 在
ConfigureServices
中註冊服務,並通過依賴關係注入 (DI) 或 ApplicationServices 在整個應用中使用服務。 - 包括 Configure 方法以建立應用的請求處理管道。
在應用啟動時,ASP.NET Core 執行時會呼叫 ConfigureServices
和 Configure
:
ConfigureServices 方法
- 可選。
- 在
Configure
方法配置應用服務之前,由主機呼叫。 - 其中按常規設定配置選項。
主機可能會在呼叫 Startup
方法之前配置某些服務。 有關詳細資訊,請參閱主機。
對於需要大量設定的功能,IServiceCollection 上有 Add{Service}
擴充套件方法。 例如,AddDbContext、AddDefaultIdentity、AddEntityFrameworkStores 和 AddRazorPages :
public void ConfigureServices(IServiceCollection services) { services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer( Configuration.GetConnectionString("DefaultConnection"))); services.AddDefaultIdentity<IdentityUser>( options => options.SignIn.RequireConfirmedAccount = true) .AddEntityFrameworkStores<ApplicationDbContext>(); services.AddRazorPages(); }
將服務新增到服務容器,使其在應用和 Configure
方法中可用。 服務通過依賴關係注入或 ApplicationServices 進行解析。
Configure 方法
Configure 方法用於指定應用響應 HTTP 請求的方式。 可通過將中介軟體元件新增到 IApplicationBuilder 例項來配置請求管道。 Configure
方法可使用 IApplicationBuilder
,但未在服務容器中註冊。 託管建立 IApplicationBuilder
並將其直接傳遞到 Configure
。
ASP.NET Core 模板配置的管道支援:
- 開發人員異常頁
- 異常處理程式
- HTTP 嚴格傳輸安全性 (HSTS)
- HTTPS 重定向
- 靜態檔案
- ASP.NET Core MVC 和 Razor Pages
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapRazorPages(); }); }
每個 Use
擴充套件方法將一個或多箇中介軟體元件新增到請求管道。 例如,UseStaticFiles 配置中介軟體提供靜態檔案。
請求管道中的每個中介軟體元件負責呼叫管道中的下一個元件,或在適當情況下使鏈發生短路。
可以在 Configure
方法簽名中指定其他服務,如 IWebHostEnvironment
、ILoggerFactory
或 ConfigureServices
中定義的任何內容。 如果這些服務可用,則會被注入。