ASP.NET Coreのstartupクラス

9242 ワード

原文住所:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/startup
以下:
--Startupクラス
--Configureメソッド
--ConfigureServicesメソッド
--有効なサービス(Services Available in Startup)
--その他のリソース
Startupクラスは要求パイプを構成し、すべてのアプリケーションが受信した要求を処理します.
The  Startup  class configures the request pipeline that handles all requests made to the application.
Startupクラス
asp.Netcoreはクラスを起動する必要があります.通常は「Startup」と命名され、プログラムWebHostBuilderExtensionsのUseStartupでStartupクラス名を指定します.
ASP.NET Core apps require a  Startup  class. By convention, the  Startup  class is named "Startup". You specify the startup class name in the  Main  programs WebHostBuilderExtensions  UseStartup  method.
Startupクラスをそれぞれ異なる環境(Environment)で定義し、実行時に適切な起動を選択できます.WebHostの構成または操作でstartup Assemblyプログラムセットが指定されている場合、管理者はstartupプログラムセットをロードし、StartupまたはStartup(Environment)タイプを検索します.Startup LoaderのFindStartup TypeとWorking with multiple environmentsを参照して、UseStartupを使用することをお勧めします.
You can define separate  Startup  classes for different environments, and the appropriate one will be selected at runtime. If you specify  startupAssembly  in the WebHost configuration or options, hosting will load that startup assembly and search for a  Startup  or  Startup[Environment]  type. See FindStartupType in  StartupLoader  and Working with multiple environments.  UseStartup  is the recommended approach.
Startupクラス構築関数は、依存注入による依存関係を受け入れることができ、IHostingEnvironmentで構成を設定し、ILoggerFactoryでloggingプロバイダを設定することができます.
The  Startup  class constructor can accept dependencies that are provided through dependency injection. You can use  IHostingEnvironment  to set up configuration sources and  ILoggerFactory  to set up logging providers.
Startupクラスには、プログラムの起動時に呼び出されるメソッドをオプションで含む必要があります.このクラスには、これらのメソッドの特定の環境バージョンも含まれます.
The  Startup  class must include a  Configure  method and can optionally include a  ConfigureServices  method, both of which are called when the application starts. The class can also include environment-specific versions of these methods.
プログラム起動時の例外処理について
Learn about handling exceptions during application startup.


Configureメソッド


configureメソッドは、ASPを指定するために使用する.NETプログラムがHTTP要求にどのように応答するかは、依存注入によって提供されるIApplicationBuilderインスタンスにミドルウェアコンポーネントを追加することによって要求パイプを構成する.
The  Configure  method is used to specify how the ASP.NET application will respond to HTTP requests. The request pipeline is configured by adding middleware components to an  IApplicationBuilder  instance that is provided by dependency injection.
次に、デフォルトのWebサイトテンプレートの例を示します.BrowserLink、error pages、static files、ASPをサポートするために、パイプに拡張方法を追加します.NET MVC, and Identity.
In the following example from the default web site template, several extension methods are used to configure the pipeline with support for BrowserLink, error pages, static files, ASP.NET MVC, and Identity
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
                         ILoggerFactory loggerFactory)
{
 
    loggerFactory.AddConsole(Configuration.GetSection("Logging"));    
    loggerFactory.AddDebug();    
    
    if (env.IsDevelopment())
    {    app.UseDeveloperExceptionPage();
         app.UseDatabaseErrorPage();
         app.UseBrowserLink();
    }
    else{        
        app.UseExceptionHandler("/Home/Error");
    }    
    
    app.UseStaticFiles();    
    app.UseIdentity();    
    
    app.UseMvc(routes =>{
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });
}

各拡張メソッドは、要求パイプにミドルウェアコンポーネントを追加します.たとえば、UseMvc拡張メソッドはroutingミドルウェアを要求パイプに追加し、MVCをデフォルト処理として設定します.
Each  Use  extension method adds a middleware component to the request pipeline. For instance, the  UseMvc  extension method adds the routing middleware to the request pipeline and configures MVCas the default handler.
IApplicationBuilderの詳細についてはミドルウェアを参照してください.
For more information about how to use  IApplicationBuilder , see Middleware.
また、IHostingEnvironmentやILoggerFactoryなどの他のサービスをメソッド署名に指定することもできます.この場合、利用可能であれば、これらのサービスに注入されます.
Additional services, like  IHostingEnvironment  and  ILoggerFactory  may also be specified in the method signature, in which case these services will be injected if they are available.

ConfigureServicesメソッド


コンフィギュレーション・サービス・メソッドはオプションですが、コンフィギュレーション・オペレーションはコンフィギュレーション・サービスの前に呼び出される場合(一部の機能はリクエスト・パイプにリンクする前に追加されます)、メソッドで設定されます.
The ConfigureServices method is optional; but if used, it's called before the  Configure  method by the runtime (some features are added before they're wired up to the request pipeline). Configuration options are set in this method.
多くの設定が必要な機能については、IServiceCollectionのAdd[Services]拡張メソッドを使用します.デフォルトのWebサイトテンプレートの例を次に示し、Entity Framework,Identity,and MVCをプログラムに構成します.
For features that require substantial setup there are  Add[Service]  extension methods on IServiceCollection. This example from the default web site template configures the app to use services for Entity Framework, Identity, and MVC.
public void ConfigureServices(IServiceCollection services)
{    
    // Add framework services.
    services.AddDbContext(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
        
    services.AddIdentity()
        .AddEntityFrameworkStores()
        .AddDefaultTokenProviders();
        
    services.AddMvc();

    // Add application services.
    services.AddTransient();
    services.AddTransient();
}

サービスコンテナにサービスを追加し、依存注入によってプログラムで使用できるようにします.
Adding services to the services container makes them available within your application via dependency injection.

Startupで利用可能なサービス


ASP.NET Core依存注入はプログラムのstartupでプログラムサービスを提供し、これらのサービスがStartupクラスの構築関数またはそのコンフィギュレーションとコンフィギュレーションサービスリリースを通じて適切なインタフェースをパラメータとして転送することを要求することができます.
ASP.NET Core dependency injection provides application services during an application's startup. You can request these services by including the appropriate interface as a parameter on your  Startup  class's constructor or one of its  Configure  or  ConfigureServices  methods.
Startupクラスの各メソッドを呼び出し順に見ると、サービスはパラメータとして要求されます.
Looking at each method in the  Startup  class in the order in which they are called, the following services may be requested as parameters:
  • In the constructor:  IHostingEnvironmentILoggerFactory
  • In the  ConfigureServices  method:  IServiceCollection
  • In the  Configure  method:  IApplicationBuilderIHostingEnvironmentILoggerFactoryIApplicationLifetime

  • その他のリソース

  • Working with Multiple Environments
  • Middleware
  • Logging
  • Configuration