阅读ASP.NET Core的文档后,有两种启动方法可供选择:Configure和ConfigureServices。
这些似乎都不是放置我希望在启动时运行的自定义代码的好地方。也许我想在数据库中添加一个自定义字段(如果不存在),检查特定文件,将一些数据播种到数据库中,等等。我想在应用程序启动时运行一次的代码。
是否有首选/推荐的方法可以做到这一点?
在启动时,此类自定义代码基本上有两个入口点。
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
文件。所有示例和模板都将逻辑用于身份,实体框架初始化等。因此,按照惯例,我建议将初始化内容放在此处。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句