gpt4 book ai didi

c# - UnityContainer 为一个接口(interface)解析所有类型

转载 作者:行者123 更新时间:2023-12-02 17:36:15 24 4
gpt4 key购买 nike

我有以下类(class):

public class Foo : IFoo
{
public Foo(IBar[] bars);
}

IBar有多种实现,都注册在UnityContainer中。当我调用

UnityContainer.Resolve()
我希望容器将所有已知的 IBar 实现注入(inject)到对象中。

我怎样才能做到这一点?

最佳答案

只要您注册的类型有一个名称:

container.RegisterType<IBar, ActualBar>("ActualBar");
container.RegsiterType<IBar, YetAnotherBar>("YetAnotherBar");

并如您提到的那样给定一个适当的公共(public)构造函数:

public Foo(IBar[] bars)
{
}

Unity 将开箱即用地负责将所有已命名的注册实例解析到您的构造函数中。

Foo foo = container.Resolve<Foo>();

关于c# - UnityContainer 为一个接口(interface)解析所有类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26543939/

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