dependency-injection - AddScoped() 如何在 Asp.net 核心之外表现?

标签 dependency-injection asp.net-core

假设我想在将作为 Azure Web 作业运行的控制台应用程序中使用依赖注入(inject)。这样做我正在重用我在相关的 Asp.net 应用程序上使用的名为“AddATonOfServices()”的自定义服务注册方法。

我的问题是,使用 AddScoped() 在“AddATonOfServices()”中注册的服务现在在控制台应用程序中的行为如何?他们的行为是像 Transient 还是 Singleton 一样,还是如何?会有什么意想不到的行为吗?

谢谢。

最佳答案

如果您通过 IServiceScopeFactory 创建范围,它将被解析为范围。 .

// provider is the root container
using(var scope = provider.GetService<IServiceScopeFactory>().CreateScope())
{
    var scopedService = scope.ServiceProvider.GetRequiredService<IScopedService>();
    // do something
}
// scope will be disposed and all scoped and transient services which implement IDisposable

如果您解决了 范围 来自根容器的服务,那么它将是一个有效的单例(假设 provider 与应用程序一样长)

关于dependency-injection - AddScoped() 如何在 Asp.net 核心之外表现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45653561/

相关文章:

asp.net-mvc - 使用 Autofac 将依赖项注入(inject)自定义 Web API 操作过滤器属性

c# - 具有多个接口(interface)的 Autofac Open Generic Decorator 导致循环依赖解析

c# - Action 过滤器上的简单注入(inject)器属性注入(inject)

java - 哪种Java Web Framework最适合Google Guice?

typescript - 如何使用 inversify 注入(inject) knex?

c# - 将 View 渲染为字符串缓存问题

c# - Entity Framework : Can DB Contexts Have Foreign Keys Across Different Schemas?

asp.net-core - Entity Framework Core - 访问实体上的集合的最佳方式?

c# - 如何正确使用模型绑定(bind)在 Razor Pages 中获取单选按钮值

asp.net - 如何为 Web 应用程序每隔几秒配置 azure 运行状况检查 "pings"