ASP.NET Core框架为我们提供了两个定义明确的初始化位置:1 Startup.ConfigureServices().注册DI服务的Startup.Configure()方法2. 中间件管道的配置方法
但是,其他针对我的Web应用程序的初始化步骤又如何呢?它们应该去哪儿,特别是如果它们需要注入依赖项时?
例如,我需要根据配置文件appsettings.json中指定的连接字符串初始化数据库ORM。因此,此初始化代码依赖于IConfiguration可能在注册过程中注册到DI容器中的其他自定义服务Startup.ConfigureServices()
因此,根据这些文章的建议:
https://odetocode.com/blogs/scott/archive/2019/02/14/net-core-opinion-7-startup-task.aspx
https://odetocode.com/blogs/scott/archive/2019/03/07/net-core-opinion-10-move-more-code-out-of.aspx
我试图将初始化逻辑封装在单独的类中,然后为该类创建扩展方法来IWebHostBuilder执行此代码,但是如何使框架注入IConfiguration和其他自定义依赖项进入此扩展方法?另外,我可以确定Startup.ConfigureServices()在注册所有依赖项之后,将执行此代码吗?
有没有更好的或推荐的方式来执行此类任务?