如何在统一不同的构造两次注册相同类型?
-
22-08-2019 - |
题
我试图注册相同的类型,但是具有两个不同的构造。当我试图解决,我得到第二解析“的依赖解析失败的。”
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");
不隶属于 StackOverflow