最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET Core應(yīng)用啟動Startup類簡介

 更新時間:2022年04月06日 11:10:31   作者:暗斷腸  
這篇文章介紹了ASP.NET Core中的應(yīng)用啟動Startup類,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1.前言

Core與早期版本的 ASP.NET 對比,配置應(yīng)用程序的方式的 Global.asax、FilterConfig.cs和RouteConfig.cs 都被Program.cs 和 Startup.cs取代了。Program.cs作為Web應(yīng)用程序的默認(rèn)入口,在沒有任何修改的情況下,會調(diào)用同目錄下Startup.cs中的ConfigureServices 和 Configure方法。

2.Startup類

Startup類配置服務(wù)和應(yīng)用的請求管道。Program.Main方法是應(yīng)用程序的托管入口。在構(gòu)建應(yīng)用程序的主機(WebHost)時,系統(tǒng)為應(yīng)用程序指定 Startup 類,而Main入口通過主機生成器(IWebHostBuilder)調(diào)用Build時,生成對應(yīng)的應(yīng)用程序的主機(WebHost),并啟動運行(Run)。

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
}

2.1 當(dāng)應(yīng)用程序啟動時調(diào)用 Startup類

當(dāng)應(yīng)用程序啟動時,運行時會調(diào)用Startup類的 ConfigureServices 和 Configure方法:

public class Startup
{
    // Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        ...
    }

    // Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app)
    {
        ...
    }
}

Startup類必須定義Configure方法,但是可選擇定義一個ConfigureServices 方法,這些方法將在應(yīng)用程序啟動時被調(diào)用。下面我們再來了解下這兩個方法。

3.ConfigureServices方法

用于設(shè)置應(yīng)用程序所需要的服務(wù)。

  • 該方法可選擇定義或不定義。
  • 在Configure方法配置應(yīng)用程序服務(wù)之前被主機(WebHost)調(diào)用。
  • 其中按常規(guī)設(shè)置配置選項(appsettings.json)。

對于需要大量設(shè)置的功能,IServiceCollection 上有 Add{Service} 擴展方法。 典型 ASP.NET Core 應(yīng)用將為實體框架(Entity Framework)、標(biāo)識(Identity)和 MVC 注冊服務(wù):

public void ConfigureServices(IServiceCollection services)
{
    // 添加 Entity Framework服務(wù)
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(
            _Configuration.GetConnectionString("DefaultConnection")));
    services.AddDefaultIdentity<IdentityUser>()
        .AddDefaultUI(UIFramework.Bootstrap4)
        .AddEntityFrameworkStores<ApplicationDbContext>();

    // 添加MVC設(shè)置兼容版本服務(wù).
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

    // 添加應(yīng)用程序服務(wù).
    services.AddTransient<IEmailSender, AuthMessageSender>();
    services.AddTransient<ISmsSender, AuthMessageSender>();
}

將服務(wù)添加到服務(wù)容器,使其在應(yīng)用程序和Configure方法中可用。服務(wù)通過依賴關(guān)系注入(DI)或 ApplicationServices 進(jìn)行解析。

4.Configure方法

用于指定應(yīng)用程序響應(yīng)HTTP請求的方式。
可通過將中間件(middleware)組件添加到IApplicationBuilder實例來配置請求管道。Configure方法可使用 IApplicationBuilder,但未在服務(wù)容器中注冊。托管創(chuàng)建 IApplicationBuilder并將其直接傳遞到Configure。
通俗點來說,Configure方法用于指定ASP.NET應(yīng)用程序?qū)⑷绾雾憫?yīng)每個HTTP請求,你可以配置每個請求都接受相同的響應(yīng)。而更復(fù)雜的管道配置可以封裝于中間件(middleware)中,并通過擴展方法添加到IApplicationBuilder上。Configure方法必須接受一個IApplicationBuilder參數(shù)。

4.1 ASP.NET Core模板配置的管道支持:

  • 開發(fā)人員異常頁
  • 異常處理程序
  • HTTP 嚴(yán)格傳輸安全性 (HSTS)
  • HTTPS 重定向
  • 靜態(tài)文件
  • 一般數(shù)據(jù)保護(hù)條例 (GDPR)
  • ASP.NET Core MVC 和 Razor Pages
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseCookiePolicy();

    app.UseMvc();
}

5.總結(jié)

  • Program的Main方法用于創(chuàng)建WebHost服務(wù),調(diào)用啟動類Startup。
  • Startup中的ConfigureServices方法用于將服務(wù)注入到IServiceCollection服務(wù)容器中。
  • Startup中的Configure方法用于應(yīng)用響應(yīng)HTTP請求,將中間件注冊到ApplicationBuilder中來配置請求管道。

到此這篇關(guān)于ASP.NET Core應(yīng)用啟動Startup類的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 析構(gòu)函數(shù)的作用 什么是析構(gòu)函數(shù)

    析構(gòu)函數(shù)的作用 什么是析構(gòu)函數(shù)

    這篇文章主要講述了析構(gòu)函數(shù)的概念、原理、功能以及定義格式,析構(gòu)函數(shù)是C#程序設(shè)計中比較重要的概念,需要的朋友可以參考一下
    2007-12-12
  • 簡單的啟動窗體

    簡單的啟動窗體

    簡單的啟動窗體...
    2006-10-10
  • 初識 ASP.NET Membership 用戶管理

    初識 ASP.NET Membership 用戶管理

    Membership 是用做用戶管理,進(jìn)行身份認(rèn)證使用的。通過ASP.NET Membership,我們可以創(chuàng)建用戶、刪除用戶和編輯用戶屬性。所以這是一個實現(xiàn)登錄相關(guān)控件的底層框架。
    2016-04-04
  • 那些年,我還在學(xué)asp.net(一) 學(xué)習(xí)筆記

    那些年,我還在學(xué)asp.net(一) 學(xué)習(xí)筆記

    那些年到此,基本學(xué)習(xí)了前端的基本知識,那些年的第四課就是asp.net,當(dāng)然那時看了很多教程,比如說:天轟穿,當(dāng)然天轟穿說得比較多,如面向?qū)ο?,C#知識,由于當(dāng)時上過C++,所以就沒有看這些,直接從asp.net開始,主要是學(xué)習(xí)一下asp.net用到的一些基本控件
    2012-03-03
  • asp.net Ajax之無刷新評論介紹

    asp.net Ajax之無刷新評論介紹

    asp.net Ajax之無刷新評論介紹;需要的朋友可以參考下
    2012-11-11
  • ADO.NET 連接數(shù)據(jù)庫字符串小結(jié)(Oracle、SqlServer、Access、ODBC)

    ADO.NET 連接數(shù)據(jù)庫字符串小結(jié)(Oracle、SqlServer、Access、ODBC)

    ADO.NET 連接數(shù)據(jù)庫字符串小結(jié),包括Oracle、SqlServer、Access、ODBC,需要的朋友可以收藏下
    2012-04-04
  • Blazor組件事件處理功能

    Blazor組件事件處理功能

    這篇文章介紹了Blazor組件的事件處理功能,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • WPF使用ValidationRules對MVVM架構(gòu)數(shù)據(jù)驗證

    WPF使用ValidationRules對MVVM架構(gòu)數(shù)據(jù)驗證

    這篇文章介紹了WPF使用ValidationRules對MVVM架構(gòu)數(shù)據(jù)驗證的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • .net6引入autofac框架

    .net6引入autofac框架

    這篇文章介紹了.net6引入autofac框架的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • asp.net實例代碼protected override void Render(HtmlTextWriter writer)

    asp.net實例代碼protected override void Render(HtmlTextWriter wri

    把最終要輸出的html壓縮后再輸出和最終輸出前先存為html文件,如果發(fā)布最新信息了,可以打開一次default.aspx,然后他又會生成一次html
    2008-08-08

最新評論

温泉县| 城固县| 定边县| 卢氏县| 萨迦县| 南召县| 政和县| 调兵山市| 炉霍县| 那坡县| 那坡县| 通化市| 乐至县| 芮城县| 蒙城县| 克拉玛依市| 郴州市| 锡林浩特市| 芦溪县| 泸水县| 弥渡县| 腾冲县| 花莲市| 广宁县| 枣强县| 修武县| 龙里县| 游戏| 滦南县| 黎城县| 门源| 隆尧县| 拜城县| 叶城县| 丰都县| 宜昌市| 城口县| 磐安县| 黑水县| 页游| 南召县|