ASP.NET Coreのドキュメントを読むと、スタートアップには、ConfigureとConfigureServicesという2つの方法があります。
これらはどちらも、起動時に実行するカスタムコードを配置するのに適した場所ではないように思われました。おそらく、カスタムフィールドが存在しない場合は、DBに追加したり、特定のファイルを確認したり、データベースにデータをシードしたりしたいと思います。アプリの起動時に1回だけ実行するコード。
これを実行するための推奨/推奨アプローチはありますか?
基本的に、起動時にそのようなカスタムコードの2つのエントリポイントがあります。
1.)Main
メソッド
ASP.NET CoreアプリケーションにはMain
エントリポイントとして古き良きメソッドがあり、ASP.NET Coreの起動前に次のようなコードを配置できます。
public class Program
{
public static void Main(string[] args)
{
// call custom startup logic here
AppInitializer.Startup();
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
2.)Startup
クラスを使用する
あなたはすでにあなたの質問で述べたようにあるConfigure
とConfigureServices
カスタムコードのために良い場所。
私が好むStartup
クラスを。ランタイムの観点からは、呼び出しが起動時またはhost.Run()
呼び出し前のどこかで呼び出されるかどうかは問題ではありません。しかし、ASP.NETフレームワークに慣れているプログラマの観点からすると、そのようなロジックを最初に探すのはStartup.cs
ファイルです。すべてのサンプルとテンプレートには、Identity、Entity Frameworkの初期化などのロジックが含まれています。慣例として、初期化用のものをそこに置くことをお勧めします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加