更新时间:2023-01-11 10:01:08
只需将所有IRule
实现一一注册即可;Microsoft.Extensions.DependencyInjection (MS.DI) 库可以将其解析为 IEnumerable
.例如:
It's just a matter of registering all IRule
implementations one by one; the Microsoft.Extensions.DependencyInjection (MS.DI) library can resolve it as an IEnumerable<T>
. For instance:
services.AddTransient<IRule, Rule1>();
services.AddTransient<IRule, Rule2>();
services.AddTransient<IRule, Rule3>();
services.AddTransient<IRule, Rule4>();
消费者:
public sealed class Consumer
{
private readonly IEnumerable<IRule> rules;
public Consumer(IEnumerable<IRule> rules)
{
this.rules = rules;
}
}
注意:MS.DI 支持的唯一集合类型是 IEnumerable
.
NOTE: The only collection type that MS.DI supports is IEnumerable<T>
.