ASP.net,ASP.NET Core 項目配置 ( Startup ) - ASP.NET Core 基礎教程 - 簡單教程,簡單編程

 2023-10-21 阅读 23 评论 0

摘要:ASP.NET Core 項目配置 ( Startup ) - ASP.NET Core 基礎教程 - 簡單教程,簡單編程 原文:ASP.NET Core 項目配置 ( Startup ) - ASP.NET Core 基礎教程 - 簡單教程,簡單編程 ASP.NET Core 項目配置 ( Startup ) 前面幾章節中我們已經介紹和使用過 Startup 類&#
ASP.NET Core 項目配置 ( Startup ) - ASP.NET Core 基礎教程 - 簡單教程,簡單編程

原文:ASP.NET Core 項目配置 ( Startup ) - ASP.NET Core 基礎教程 - 簡單教程,簡單編程

ASP.NET Core 項目配置 ( Startup )

前面幾章節中我們已經介紹和使用過 Startup 類,包括

  1. 在創建新項目時修改了 Startup 類中的 Hello World 修改返回值
  2. 上一章節中講解 Program.cs 時講到 Program 類會實例化 Startup

ASP.net、但 Startup 能做的不僅僅是這些,可以說 ASP.NET Core 中大大小小的各個組件和中間件都會和 Startup 類打交道。

但一個章節又不能全部講完。于是乎,這章節我們只講解最重要的幾個東西

以前的版本

如果你曾經使用過 ASP.NET,那么你可能會期望

  1. net core 開發?看到一個 global.asax 文件,可以在啟動 Web 應用程序期間編寫代碼來執行的一個地方

  2. 看到一個 web.config 文件,用來包含應用程序需要執行的所有配置參數

在 ASP.NET Core 中,這些文件全部消失,取而代之的是使用 Startup.cs 加載配置和啟動代碼

net core 部署、Startup.cs 文件中有一個 Startup 類,在這個類中可以配置應用程序,甚至配置配置源

默認的 Startup.cs 文件內容

Startup.cs 文件中默認的內容如下

using System;
using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; namespace HelloWorld { public class Startup { // 該方法在運行時被調用。 // 可以使用該方法將服務添加到容器中 // 更多信息配置應用程序的信息,可以查看 https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { } // 該方法在運行時被調用 // 可以使用該方法來配置 HTTP 請求管道 public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.Run(async (context) => { await context.Response.WriteAsync("Hello World!"); }); } } } 

Startup 類

Startup 類可以用來定義請求處理管道和配置應用程序需要的服務。

ASP.NET2.0完全開發指南,Startup 類必須是公開的,且必須包含以下兩個方法

  1. ConfigureServices() 方法

    public void ConfigureServices(IServiceCollection services){}
    

    ConfigureServices() 方法用于定義應用程序所需要的服務,例如 ASP.NET Core MVC 、 Entity Framework Core 和 Identity 等等

    net core redis、關于 服務 我們會再接下來的章節中詳細介紹

  2. Configure() 方法

    public void Configure(IApplicationBuilder app, IHostingEnvironment env){}
    

    Configure() 用于定義請求管道中的中間件

    關于 請求管道 的概念,我們會在接下來的章節中詳細介紹

項目配置

Startup 類中的 Configure() 方法用于配置和構建 HTTP 請求管道的地方

該怎么理解這句話呢?

其實也就是說,Configure() 方法可以用來定義我們的應用程序如何響應請求

對于任意網址,默認情況下它只會輸出 Hello World!

如果我們希望應用程序的行為不同,我們需要在 Configure() 方法中添加其他代碼來更改管道

例如,如果我們想要為諸如 index.html 之類的靜態文件提供服務,則需要向 Configure() 方法添加一些代碼

例如,如果想要給 ASP.NET MVC 控制器發送錯誤頁面或路由請求,都需要在這個 Configure() 方法中做一些工作

動態響應內容

默認情況下,我們為每個請求都提供了一個硬編碼的響應 Hello World!

接下里來我們不再使用硬編碼,而是從某個組件中加載字符串來響應的每一個請求

  1. 在解決方案管理器的 HelloWorld 項目上點擊右鍵,選擇 添加 -> 新建文件

    如果你的電腦是 Windows ,則是 添加 -> 新建項

  2. 在新建文件對話框中,選中左邊的 Web,然后選中右邊的 空 JSON 文件

    如果你的電腦是 Windows ,則是先選中 ASP.NET Core 下的 常規 ( Genreral ) 然后選中 JSON 文件

  3. 在名稱中輸入 AppSettings.json,然后點擊右下腳的 新建 按鈕,添加一個 AppSettings.json 文件

    如果你的電腦是 Windows ,則是點擊 添加 按鈕

  4. 然后雙擊 AppSettings.json 打開文件,輸入以下內容

    {"message":"Hello World!\n你好,簡單教程,你的網址是 www.twle.cn 嗎?"
    }
    
  5. 雙擊打開 Startup.cs 文件,在 Startup 類中添加一個可讀寫屬性 Configuration

    public IConfiguration Configuration { get; set; }
    
  6. 修改 Startup 類,添加 Startup() 構造函數,加載 AppSettings.json 文件,然后構建配置項

    public Startup() 
    { var builder = new ConfigurationBuilder().AddJsonFile("AppSettings.json"); Configuration = builder.Build(); 
    }
    
  7. 最后修改 Configure() 方法,從配置項中讀取 message 并作為響應的內容

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.Run(async (context) =>{var msg = Configuration["message"];await context.Response.WriteAsync(msg);});
    }
    

修改完成后的代碼如下

Startup.cs

using System;
using System.IO; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Configuration; namespace HelloWorld { public class Startup { public Startup() { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("AppSettings.json"); Configuration = builder.Build(); } public IConfiguration Configuration { get; set; } // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.Run(async (context) => { var msg = Configuration["message"]; await context.Response.WriteAsync(msg); }); } } } 

點擊綠色三角形運行項目 ( 如果項目已經在運行則直接刷新瀏覽器即可 )

刷新瀏覽器,顯示結果如下

posted on 2018-09-29 15:44 NET未來之路 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/lonelyxmas/p/9724056.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/154868.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息