首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >清理ServiceCollection和ServiceProvider的“预”实例的正确方法?

清理ServiceCollection和ServiceProvider的“预”实例的正确方法?
EN

Stack Overflow用户
提问于 2021-09-15 22:03:53
回答 1查看 194关注 0票数 0

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

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

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

我已经考虑过建立一个依赖注入的“预”实例。如下所示:

代码语言:javascript
运行
复制
IServiceCollection services = new ServiceCollection();
// Setup the DI here
IServiceProvider serviceProvider = services.BuildServiceProvider();
var myTokenGenerator = serviceProvider.GetService<IMyTokenGenerator>();

但是我读过,当你做另一个ServiceCollection时,它会引起问题。我想知道如何避免这些问题。

如何正确地清除ServiceCollection ServiceProvider**?**的“pre”实例?

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

EN

回答 1

Stack Overflow用户

发布于 2021-09-16 04:51:16

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

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

希望我能理解你想要实现的目标。请参阅.NET核心IServiceScopeFactory.CreateScope()与IServiceProvider.CreateScope()扩展

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69200250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档