asp.Netcoreシリーズ2スタートStartupクラス紹介

4989 ワード

一.Startupクラス


  ASP.NET Coreアプリケーションは、Program.MainメソッドでWebサーバを作成するコンソールアプリケーションです.ここで、Mainメソッドは適用される管理エントリポイントであり、MainメソッドはWebHostを呼び出す.CreateDefaultBuilderは、Webホストを作成し、Kestrel Webサーバを自動的に割り当てます.IWebHostBuilderのBuildメソッドは、IWebHostオブジェクト呼び出しRunメソッドを生成してWebHostを起動し、アプリケーションを管理してHTTPリクエストのリスニングを開始する.コードは次のとおりです.
public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

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

 
1.1アプリケーション起動Startupクラス
IWebHostBuilderクラスのUseStartupは起動クラスを呼び出し、規定に従ってStartupと命名されます.このクラスは共通クラスでなければなりません.このクラスは、パイプの処理とアプリケーションの構成を要求するために必要なサービスを定義します.アプリケーションが起動すると、ConfigureServicesConfigur eの2つのメソッドが呼び出されます.ConfigureServicesは注入サービスに使用され、ConfigureはHTTP要求に応答するために使用される.
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)
    {
        ...
    }
}

  
1.2 ConfigureServicesメソッド
ConfigureServicesメソッドは、注入サービスを担当します.このメソッドはWebHostのConfigureメソッドの前に呼び出され、サービスコンテナにサービスを追加してアプリケーションに依存注入して使用できるようにし、webHostが起動する前にメソッドのサービスをロードします.典型的なモードは、Add{service}メソッド注入サービスを呼び出し、すべてのservicesを呼び出す.Configure{Services}メソッド.サービスを注入した後、アプリケーションおよびコンフィギュレーションメソッドでサービスを使用させます.パラメータIServiceCollection(サービスコンテナ)には、EF、identity、mvcサービスなどの独自のframeworkフレームワークサービスを追加するためのAdd[Services]拡張方法があり、IServiceCollectionにカスタムサービスを注入することもできます.
  public void ConfigureServices(IServiceCollection services)
        {
            //   Razor Pages   MVC      
            services.AddMvc();
        }

 
1.3 Configureメソッド
Configureメソッドは、アプリケーションがHTTPリクエストに応答する方法を指定するために使用されます.中間部品をIApplicationBuilderインスタンスに登録して、要求パイプを構成できます.次の例で登録されるミドルウェアには、ExceptionHandler例外/エラー処理、HttpsRedirectionリダイレクト、StaticFiles静的ファイルサーバ、CookiePolicyポリシー実装、mvcなどのミドルウェアが含まれます.各useの先頭にある拡張メソッドは、IApplicationBuilder要求パイプにミドルウェアを追加します.
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();
        }

 
まとめ:(1)プログラムのmainメソッドは、WebHostサービスを作成し、起動クラスStartupを呼び出すために使用されます.
(2)Startupのコンフィギュレーションサービス方法は、IServiceCollectionサービスコンテナにサービスを注入するために使用される.
(3)StartupのConfigureメソッドは、HTTPリクエストに応答し、中間部品をApplicationBuilderに登録してリクエストパイプを構成するために使用される.
参考文献:
    https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/startup?view=aspnetcore-2.1