【发布时间】:2019-04-16 12:04:35
【问题描述】:
ASP.NET Core 框架为我们提供了两个定义明确的初始化位置:
1.Startup.ConfigureServices()注册DI服务的方法
2.Startup.Configure()中间件管道配置方法
但是其他特定于我的 Web 应用程序的初始化步骤呢?这些应该去哪里,特别是如果它们有需要注入的依赖项?
例如,我需要根据配置文件 appsettings.json 中指定的连接字符串来初始化数据库 ORM。所以这个初始化代码依赖于IConfiguration,也许还有其他在Startup.ConfigureServices()期间注册到DI容器的自定义服务
因此,根据这些文章的建议:
我尝试将初始化逻辑封装在单独的类中,然后为IWebHostBuilder 创建将执行此代码的扩展方法,但是如何使框架将IConfiguration 和其他自定义依赖项注入此扩展方法中?另外,我能确定这段代码会在Startup.ConfigureServices()之后所有的依赖都注册好后执行吗?
是否有更好或推荐的方法来执行此类任务?
【问题讨论】:
标签: c# asp.net-core