gpt4 book ai didi

.NET Core 依赖注入(inject) -> 获取接口(interface)的所有实现

转载 作者:行者123 更新时间:2023-12-04 10:23:51 24 4
gpt4 key购买 nike

我有一个名为 IRule 的接口(interface)和多个实现该接口(interface)的类。我想使用 .NET Core 依赖注入(inject)容器来加载 IRule 的所有实现,所以所有实现的规则。

不幸的是,我无法完成这项工作。我知道我可以注入(inject) IEnumerable<IRule>进入我的 Controller ctor,但我不知道如何在 Startup.cs 中注册此设置

最佳答案

只需注册所有IRule一一实现; Microsoft.Extensions.DependencyInjection (MS.DI) 库可以将其解析为 IEnumerable<T> .例如:

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<T> .

关于.NET Core 依赖注入(inject) -> 获取接口(interface)的所有实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39567609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com