在使用.NET Core DI(依赖注入)实例化单个类的多个实例时,可以通过以下步骤实现:
public interface IMyService
{
void DoSomething();
}
public class MyService : IMyService
{
public void DoSomething()
{
// 实现具体的逻辑
}
}
public class AnotherService : IMyService
{
public void DoSomething()
{
// 实现具体的逻辑
}
}
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<IMyService, MyService>();
services.AddTransient<IMyService, AnotherService>();
}
在上述示例中,我们定义了一个IMyService接口,并创建了两个实现类MyService和AnotherService。然后,在ConfigureServices方法中使用services.AddTransient方法注册这两个实现类。
public class MyController : Controller
{
private readonly IEnumerable<IMyService> _myServices;
public MyController(IEnumerable<IMyService> myServices)
{
_myServices = myServices;
}
public IActionResult Index()
{
foreach (var service in _myServices)
{
service.DoSomething();
}
return View();
}
}
在上述示例中,我们在MyController中注入了IMyService接口的集合_myServices。通过遍历该集合,我们可以使用每个实例的DoSomething方法。
这样,我们就可以使用.NET Core DI实例化单个类的多个实例了。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云