gpt4 book ai didi

c# - 如何在Unity中使用不同的构造函数注册两次相同的类型?

转载 作者:行者123 更新时间:2023-11-30 14:44:06 24 4
gpt4 key购买 nike

我正在尝试使用两个不同的构造函数注册相同的类型。当我尝试解决时,我在第二次解决时收到“依赖项解决失败”。

    var container = new UnityContainer();

container.RegisterType<IBar, Bar>()
.RegisterInstance(new Bar())
.RegisterType<IBar, Bar>()
.RegisterInstance(new Bar("foo"));

Bar bar1 = (Bar)container.Resolve<IBar>();
Bar bar2 = (Bar)container.Resolve<IBar>("foo"); // ERROR

我做错了什么?

最佳答案

注册时需要给他们起名字。 Resolve 的参数是您想要的实例的名称。

var container = new UnityContainer();

container
.RegisterInstance<IBar>("BAR", new Bar())
.RegisterInstance<IBar>("FOOBAR", new Bar("foo"));

Bar bar1 = (Bar)container.Resolve<IBar>("BAR");
Bar bar2 = (Bar)container.Resolve<IBar>("FOOBAR");

关于c# - 如何在Unity中使用不同的构造函数注册两次相同的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/870470/

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