我有一个接口 ,IFoo
和三个具体类:FooA : IFoo
,FooB : IFoo
和MultiFoo : IFoo
.
for 的构造函数MultiFoo
如下所示:
public MultiFoo(params IFoo[] foos) { ... }
MultiFoo
在 Unity 中注册时可以指定特定的分辨率覆盖吗?我希望能够做这样的事情:
container.RegisterType<IFoo, FooA>("Foo A");
container.RegisterType<IFoo, FooB>("Foo B");
container.RegisterType<IFoo, MultiFoo>(new ContainerControlledLifetime(),
new ResolvedOverride<IFoo>("Foo A"),
new ResolvedOverride<IFoo>("Foo B")
);
然后它将在解析时将已解析的 FooA 和已解析的 FooB 传递给构造函数:
new MultiFoo(new FooA(), new FooB())