-1

我正在我的应用程序中实现自定义配置提供程序。

在该提供程序中,我必须进行 REST API 调用。该调用需要有效的 OAuth 2 令牌才能成功。为了得到那个令牌,我需要一个半复杂的类依赖树。

对于我的应用程序的其余部分,我只使用依赖注入来获取所需的实例。但是在设置依赖注入之前调用自定义配置提供程序。

我考虑过制作一个依赖注入的“Pre”实例。像这样:

IServiceCollection services = new ServiceCollection();
// Setup the DI here
IServiceProvider serviceProvider = services.BuildServiceProvider();
var myTokenGenerator = serviceProvider.GetService<IMyTokenGenerator>();

但是我已经读过,当你制作另一个时ServiceCollection,它可能会导致问题。我想知道避免这些问题的方法。

如何正确清理ServiceCollectionand的“pre-DI”实例ServiceProvider

(注意:似乎都没有实现 IDisposable。)

4

1 回答 1

0

嗯,我不明白你为什么要那样做。我可能会完全构建 Serviceprovider。

为了避免检索到的服务相互影响,我将使用嵌套容器/范围,这意味着如果您检索相同的服务,您将获得每个容器/范围的不同实例。

希望我了解您想要实现的目标。请参阅 .NET Core IServiceScopeFactory.CreateScope() 与 IServiceProvider.CreateScope() 扩展

于 2021-09-16T04:51:16.427 回答