如何在Unity中使用不同的构造函数两次注册相同的类型?
我正在尝试注册相同的类型,但有两个不同的构造函数。 当我尝试解决时,我在第二个Resolve上得到“ 依赖失败的解决方案”。
var container = new UnityContainer(); container.RegisterType() .RegisterInstance(new Bar()) .RegisterType() .RegisterInstance(new Bar("foo")); Bar bar1 = (Bar)container.Resolve(); Bar bar2 = (Bar)container.Resolve("foo"); // ERROR
我做错了什么?
你需要在注册时给他们起名字。 Resolve
的参数是您想要的实例的名称。
var container = new UnityContainer(); container .RegisterInstance("BAR", new Bar()) .RegisterInstance ("FOOBAR", new Bar("foo")); Bar bar1 = (Bar)container.Resolve ("BAR"); Bar bar2 = (Bar)container.Resolve ("FOOBAR");