gpt4 book ai didi

dependency-injection - CaSTLe Windsor 无法注入(inject)一系列接口(interface)类型

转载 作者:行者123 更新时间:2023-12-04 00:33:55 28 4
gpt4 key购买 nike

我有一个类,它在构造函数中采用一组接口(interface):

public class Foo<T1, T2> : IFoo<T1, T2>
{
public Foo(IBar[] bars)
{
...
}
}

我的容器注册如下所示:
container.Register(AllTypes.Pick().FromAssemblyNamed("...")
.WithService.FirstInterface());
container.AddComponent("foo", typeof(IFoo<,>), typeof(Foo<,>));

我有几个 IBar 的实现,容器可以确定地定位它们,如调用 ServiceLocator.Current.GetAllInstances<IBar>()工作正常。

但是,如果我尝试获取 IFoo 的实例,它会抛出一个异常,说它不能满足 deoendency ...“未注册”。

如果我将构造函数更改为采用 IBar 的单个实例,它可以正常工作。

有任何想法吗?

最佳答案

添加 ArrayResolver:

container.Kernel.Resolver.AddSubResolver(new ArrayResolver(container.Kernel)); 

关于dependency-injection - CaSTLe Windsor 无法注入(inject)一系列接口(interface)类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1057977/

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