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と命名されます.このクラスは共通クラスでなければなりません.このクラスは、パイプの処理とアプリケーションの構成を要求するために必要なサービスを定義します.アプリケーションが起動すると、
ConfigureServices
とConfigur
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