在C#中,依赖注入(DI)允许一个接口有多个实现类,并通过不同的方式接收这些实现。以下是几种常见的方法:
1. 使用命名注册和解析
在注册服务时,可以为每个实现指定一个名称或键,然后在解析时使用该名称或键来获取特定的实现。
// 注册服务
services.AddSingleton<IMyService, MyServiceA>("ServiceA");
services.AddSingleton<IMyService, MyServiceB>("ServiceB");
// 解析服务
var serviceA = serviceProvider.GetService<IMyService>("ServiceA");
var serviceB = serviceProvider.GetService<IMyService>("ServiceB");
2. 使用工厂模式
通过工厂模式,可以在运行时决定使用哪个实现。
// 注册服务
services.AddSingleton<MyServiceA>();
services.AddSingleton<MyServiceB>();
services.AddSingleton<Func<string, IM

最低0.47元/天 解锁文章
3518

被折叠的 条评论
为什么被折叠?



