【发布时间】:2020-04-25 23:01:00
【问题描述】:
在我的 Startup.cs 文件中的 ConfigureServices() 中,我称之为
if (services.BuildServiceProvider().GetService<IWebHostEnvironment>().IsDevelopment()) {
services.Configure<EnvironmentSettings>(Configuration.GetSection("WebServicesDevelopment"));
} else {
services.Configure<EnvironmentSettings>(Configuration.GetSection("WebServicesProduction"));
}
我收到一个构建警告说
从应用程序代码中调用“BuildServiceProvider”会导致创建一个额外的单例服务副本。考虑将依赖注入服务等替代方案作为“配置”的参数
如何使用 IApplicationBuilder 从 Configure() 调用它?
【问题讨论】:
-
为什么要移动它?这两种方法用于执行两个单独的任务。您在 ConfigureServices 中配置服务,在 Configure 中配置应用程序管道
-
因为当我构建时,我收到一条警告说“从应用程序代码调用'BuildServiceProvider'会导致创建一个额外的单例服务副本。考虑将依赖注入服务等替代方案作为“配置”的参数'"
-
对不起!让我编辑我的帖子以进一步解释。
-
哦,我想我可以将“IServiceCollection”注入“Configure()”?
-
不,不要那样做。看我的回答