首页 > 解决方案 > Microsoft.Extensions.DependencyInjection 是否使用单例概念?

问题描述

在我的项目的启动文件中,我使用 Microsoft.Extensions.DependencyInjection 以便在需要实例时,它将由依赖注入处理:

services.AddTransient<IRepository<Product>, ProductRepository>();
services.AddTransient<IRepository<Order>, OrderRepository>();

有没有办法控制是否应该返回一个新实例或同一个实例(单例)?

标签: c#dependency-injectioninversion-of-control

解决方案


对于单例,您可以使用:(每个应用程序生命周期一个实例)

services.AddSingleton(IRepository<Product>, ProductRepository>()

另一种选择是注册为范围:(每个请求一个实例)

services.AddScoped(IRepository<Product>, ProductRepository>()

推荐阅读