スタートアップ[実践的な学習ノートの.NETコア開発]:スタートアッププログラムを理解します

各レッスンの要約形式で記録し、実践的な学習[.NETのコア]を開発したXiaoweiゆう先生学習コースの記録を開始

セクションスタートアップ:スタートアッププログラムを理解します

ASP.NETコアWebプロジェクトを作成するには、次の2つのコアクラスのプログラムや起動、プログラムのメインメソッドで呼び出されCreateHostBuilderメソッドを参照してください、と返すことができIHostBuilderのプロジェクト全体を運ぶコアインタフェースであるインタフェースを、。

CreateHostBuilder方法では、ConfigureWebHostDefaults方法ビルドホストプロセスは、スタートアップ別のコアクラスを呼び出します

実際には、すべての設定をプログラムで設定することができ、他のコアクラススタートアップ優れた管理コードの構造を呼び出します

実装のプロセス全体では、この方法の実行は、次のコードのように、特定の順序で実行され、そして実行するための固定に代わり委託独自の機能を実行するために、シーケンシャルコードを記述しません

次のように定義されProgram.CreateHostBuilderは

パブリック 静的 IHostBuilder CreateHostBuilder(文字列 []引数)=> 
            Host.CreateDefaultBuilder(引数)
                .ConfigureHostConfiguration(configurationBuilder => 
                { 
                    Console.WriteLineを(" 执行方法:ConfigureHostConfiguration " ); 
                })
                .ConfigureServices(サービス => 
                { 
                    Console.WriteLineを(" 执行方法:ConfigureServices " ); 
                })
                .ConfigureLogging(loggingBuilder => 
                {
                    Console.WriteLineを(" 実行方法:ConfigureLogging " ); 
                })
                .ConfigureAppConfiguration((hostBuilderContext、configurationBinder) => 
                { 
                    Console.WriteLineを(" 実行方法:ConfigureAppConfiguration " ); 
                })
                .ConfigureWebHostDefaults(WebBuilder => 
                { 
                    Console.WriteLineを(" 実行方法:ConfigureWebHostDefaults " ); 
                    webBuilder.UseStartup <起動時> (); 
                });

定義されたスタートアップの方法

公共起動(IConfiguration構成)
        { 
            Console.WriteLineを(" 执行方法:起動" )。
            設定 = 設定。
        } 

        公共 IConfiguration設定{ 取得します} 

        // このメソッドはランタイムによって呼び出されます。コンテナにサービスを追加するには、このメソッドを使用します。
        公共 のボイドConfigureServices(IServiceCollectionサービス)
        { 
            Console.WriteLineを(" 执行方法:Startup.ConfigureServices " ); 
            services.AddControllers(); 
        }

        // このメソッドはランタイムによって呼び出されます。HTTPリクエストパイプラインを設定するには、このメソッドを使用します。
        公共の 無効設定(IApplicationBuilderアプリ、IWebHostEnvironment ENV)
        { 
            Console.WriteLineを(" 执行方法:Startup.Configure " );
            もし(env.IsDevelopment())
            { 
                app.UseDeveloperExceptionPage()。
            } 

            app.UseHttpsRedirection()。

            app.UseRouting(); 

            app.UseAuthorization(); 

            app.UseEndpoints(エンドポイント => 
            { 
                endpoints.MapControllers()。 
            })。
        }

次のように図の実行結果は、

 

実装の目に見える結果は、特定の順序で行われ、コール・インタフェースは、実行順序を変更されていません。

 

サードパーティのロギングフレームワークを使用した場合、実行の順序は、むしろスタートアップよりも、プロセスCreateHostBuilderに置き換えられていることをこれもショー

おすすめ

転載: www.cnblogs.com/c-supreme/p/12459414.html