配置文件讀取
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
中定義的任何內容。 如果這些服務可用,則會被注入。