欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ASP.NET Core應(yīng)用啟動(dòng)Startup類(lèi)簡(jiǎn)介

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

1.前言

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

2.Startup類(lèi)

Startup類(lèi)配置服務(wù)和應(yīng)用的請(qǐng)求管道。Program.Main方法是應(yīng)用程序的托管入口。在構(gòu)建應(yīng)用程序的主機(jī)(WebHost)時(shí),系統(tǒng)為應(yīng)用程序指定 Startup 類(lèi),而Main入口通過(guò)主機(jī)生成器(IWebHostBuilder)調(diào)用Build時(shí),生成對(duì)應(yīng)的應(yīng)用程序的主機(jī)(WebHost),并啟動(dòng)運(yùn)行(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)用程序啟動(dòng)時(shí)調(diào)用 Startup類(lèi)

當(dāng)應(yīng)用程序啟動(dòng)時(shí),運(yùn)行時(shí)會(huì)調(diào)用Startup類(lèi)的 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類(lèi)必須定義Configure方法,但是可選擇定義一個(gè)ConfigureServices 方法,這些方法將在應(yīng)用程序啟動(dòng)時(shí)被調(diào)用。下面我們?cè)賮?lái)了解下這兩個(gè)方法。

3.ConfigureServices方法

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

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

對(duì)于需要大量設(shè)置的功能,IServiceCollection 上有 Add{Service} 擴(kuò)展方法。 典型 ASP.NET Core 應(yīng)用將為實(shí)體框架(Entity Framework)、標(biāo)識(shí)(Identity)和 MVC 注冊(cè)服務(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ò)依賴(lài)關(guān)系注入(DI)或 ApplicationServices 進(jìn)行解析。

4.Configure方法

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

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

  • 開(kāi)發(fā)人員異常頁(yè)
  • 異常處理程序
  • 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)用啟動(dòng)類(lèi)Startup。
  • Startup中的ConfigureServices方法用于將服務(wù)注入到IServiceCollection服務(wù)容器中。
  • Startup中的Configure方法用于應(yīng)用響應(yīng)HTTP請(qǐng)求,將中間件注冊(cè)到ApplicationBuilder中來(lái)配置請(qǐng)求管道。

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

相關(guān)文章

  • WPF框架Prism中ViewModelLocator用法介紹

    WPF框架Prism中ViewModelLocator用法介紹

    這篇文章介紹了WPF框架Prism中ViewModelLocator的用法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • ASP.NET?Core?MVC中的視圖(Views)

    ASP.NET?Core?MVC中的視圖(Views)

    這篇文章介紹了ASP.NET?Core?MVC中的視圖(Views),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • ASP.NET 中ImageMap控件的用法

    ASP.NET 中ImageMap控件的用法

    本文主要介紹ImageMap控件的使用方法,并做了簡(jiǎn)單的代碼演示,希望能幫到大家。
    2016-04-04
  • asp.net 新聞列表樣式代碼

    asp.net 新聞列表樣式代碼

    asp.net下新聞列表樣式顯示代碼,使用Repeater控件。
    2011-02-02
  • ASP.NET?Core命名空間System.Text.Encodings.Web介紹

    ASP.NET?Core命名空間System.Text.Encodings.Web介紹

    這篇文章介紹了ASP.NET?Core命名空間System.Text.Encodings.Web,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • ASP.NET中Literal控件的使用方法

    ASP.NET中Literal控件的使用方法

    本文主要介紹Literal的使用方法,并簡(jiǎn)單列出和Label控件之間的區(qū)別,希望能幫助大家選擇使用。
    2016-04-04
  • ASP.NET Core中間件

    ASP.NET Core中間件

    這篇文章介紹了ASP.NET Core的中間件,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • asp.net for循環(huán)語(yǔ)句

    asp.net for循環(huán)語(yǔ)句

    最近在網(wǎng)上看了很多關(guān)于for循環(huán)的用法,發(fā)現(xiàn)自己對(duì)for循環(huán)還是很缺乏理解的。
    2008-08-08
  • WPF框架Prism中導(dǎo)航Navigation用法介紹

    WPF框架Prism中導(dǎo)航Navigation用法介紹

    這篇文章介紹了WPF框架Prism中導(dǎo)航Navigation的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • ConfiguraionSource節(jié)點(diǎn)及多個(gè)配置文件的應(yīng)用

    ConfiguraionSource節(jié)點(diǎn)及多個(gè)配置文件的應(yīng)用

    ConfiguraionSource節(jié)點(diǎn)及多個(gè)配置文件的應(yīng)用...
    2007-01-01

最新評(píng)論